C# ASP.NET MVC3:表单问题,未显示我的字段值

C# ASP.NET MVC3:表单问题,未显示我的字段值,c#,asp.net,asp.net-mvc-3,validation,C#,Asp.net,Asp.net Mvc 3,Validation,为了验证,我决定尝试使用@Html.TextBoxFor,这样验证既快速又简单。但是,没有设置该值的选项,我假设它是自动完成的,但不是自动设置的 控制器: MyLibrary.MyProspect prospect = MyLib.GetProspect(ID); return View(prospect); 视图: 我的猜测是,在任何时候,我都不会将模型设定为我的潜在客户。但我没有遇到过这样的例子,我假设我从视图中传递它,就像我看到的一样 已解决 这是工作代码

为了验证,我决定尝试使用
@Html.TextBoxFor
,这样验证既快速又简单。但是,没有设置该值的选项,我假设它是自动完成的,但不是自动设置的

控制器:

        MyLibrary.MyProspect prospect = MyLib.GetProspect(ID);
        return View(prospect);
视图:

我的猜测是,在任何时候,我都不会将模型设定为我的潜在客户。但我没有遇到过这样的例子,我假设我从视图中传递它,就像我看到的一样

已解决
这是工作代码,我只是将我的控制器操作与错误的视图进行了混合和匹配。

@model MyLibrary.MyProspect
此行将您的模型设置为MyProspect

MyProspect.Name属性上是否有数据批注


也许将MyProspect.Name的定义添加到您的问题中也会有所帮助。

您编写的代码看起来正确,我猜您的问题出在MyLib中。GetProspect(ID)没有设置Name字段的值。

要使客户端验证生效,您需要做以下几件事:

  • 使用适当的颜色装饰模型中的某些字段
  • 确保已将
    ClientValidationEnabled
    UnobtrusiveJavaScriptEnabled
    选项设置为
    true
    。这可以直接在
    中完成
  • 在页面中包括适当的库,即
    jquery.validate.min.js
    jquery.validate.unobtrusive.min.js
  • 此外,如果您没有特殊的视图要求,则可以将代码缩减为:

    @Html.EditorForModel()
    

    在浏览器中查看时文本框是否为空的问题?是否已通过调试检查值是否为空​​是否在GetProspect上返回?值都很好,我最初使用的是普通文本框。并用给定的选项填充它
    @Html.TextBox(“Name”,(String)ViewBag.Prospect.Name)
    是的,textboxfor是空的。您的代码看起来很正确。在您的评论中,您写的是关于ViewBag??这是一个完全不同的故事。你们能展示你们整个控制器的动作吗?问题补充到。这一行
    @model MyLibrary.MyProspect
    将模型设置为MyProspect,但它并没有说它使用的实例是
    prospect
    ?@doomsnight-做得好-检查模型中的数据是否正确比使用viewbag更简单的方法是使用@model(注意大写字母M)只需执行
    Name是@Model.Name
    ,它就可以为您提供值,而无需依赖HTML帮助程序。干杯,下次这会让我省去一点头痛!从来没有想过要这么做。事实绝对不是这样。使用
    @Html.TextBox(“Name”,(String)ViewBag.Prospect.Name)
    在屏幕上成功显示它,其中
    ViewBag.Prospect=Prospect
    。但是感谢您的建议使用
    @Html.EditorForModel()
    ,所有12个字段都有相应的框,但所有12个字段都是空白的。prospect的实例设置是否正确?我会尝试你提到的1-3件事。我做的有点傻,混合和匹配错误的动作和观点。但是非常感谢新的代码,我喜欢整洁:)没问题:)如果您确实需要自定义视图,并且仍然希望坚持使用
    EditorForModel
    方法,您可以创建自定义模板-请参阅以获取良好的教程。
    public class MyProspect
    {
        public String Name { get; set; }
    }
    
    @Html.EditorForModel()