【问题标题】:Lost remaining record after validation error comes in MVCMVC 中出现验证错误后丢失的剩余记录
【发布时间】:2016-04-16 20:46:00
【问题描述】:

我有一个 MVC 项目,包含有 25-30 个字段要填写的用户注册表单。填写表格后,如果用户忘记填写必填字段,则会显示验证错误。但剩下的所有字段都会丢失数据。 我在控制器中提到过

if (!ModelState.IsValid)
        {
            ModelToDBclass obj = new ModelToDBclass();
            objModel.Id = Convert.ToInt32(obj.GetMaxPaperId());
            objModel.countryNameDB = obj.GetcountryName();
            return View(objModel);
        }

最后它返回空白视图。但在运行时

return View(objModel); 模型显示每个字段的数据,但是在查看时无法在文本框和下拉列表中显示记录。我使用了类似的文本框,

<div class="col-sm-2"><input type="text"  class="form-control" name="ConsumerFName" id="txtConsumerFirstName" placeholder="First Name" />
                                                    @Html.ValidationMessageFor(m => m.ConsumerFName)</div>

所以,请帮助我如何在验证错误后显示填充记录

【问题讨论】:

  • 你能用@Html.EditorFor(m =&gt; m.ConsumerFName, new { @placeholder = "First Name", @class = "form-control" })吗?在这种情况下,值将被持久化。
  • 不要手动生成你的html。使用强类型的 html 帮助器(例如 @Html.TextBoxFor(m =&gt; m.ConsumerFName),它负责此功能和其他功能,例如客户端验证
  • 你是说替换所有文本框并写在上面的行。我是对的......??
  • 是的,当然还有正确的模型属性。
  • 好的@StephenMuecke,但是我怎样才能为特定控件应用独特的css..?

标签: c# html validation asp.net-mvc-4 model


【解决方案1】:

您应该始终使用Html Helper

@Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @class = "form-control" }, placeholder = "First Name", autofocus = "autofocus" })

只有当Model state无效时,才会在各个字段显示返回的对象值。不要正常的html标签。
希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 2022-01-09
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多