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()