当我们使用 @Html.DisplayFor 时,客户端会呈现什么 html 控件?
这完全取决于您要调用的属性的特定类型DisplayFor
。助手将DisplayFor
分析表达式中使用的属性的具体类型并调用相应的显示模板。您还可以为您的视图模型类型编写自定义显示模板。Brad Wilson 写了一篇关于模板的精彩博客文章,我邀请您阅读以更好地熟悉基本概念:http ://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part- 1-introduction.html
有一系列帖子,请确保您已全部阅读。
当我们使用 @Html.EditFor 时,客户端会呈现什么 html 控件?
这完全取决于您要调用的属性的特定类型EditorFor
。助手将EditorFor
分析表达式中使用的属性的具体类型并调用相应的编辑器模板。您还可以为您的视图模型类型编写自定义编辑器模板。Brad Wilson 写了一篇关于模板的精彩博客文章,我邀请您阅读以更好地熟悉基本概念:http ://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part- 1-introduction.html
有一系列帖子,请确保您已全部阅读。
我总是看到 ModelState.IsValid 返回 true ?当它实际上返回 false ?
当有错误添加到 ModelState 时。如果您在视图模型上使用了一些数据注释进行验证,并且提交给服务器的值未能通过此验证,则可能会发生这种情况。通常,在ModelState.IsValid
将请求值绑定到您的视图模型时,默认模型绑定器会将错误消息添加到 ModelState(返回 false)。
我尝试这样做,例如 ModelState["Name"] 或 ModelState["Name"].ToString() 都给出错误。
在 ASP.NET MVC 中,您使用视图模型。您的[HttpPost]
控制器操作将视图模型作为参数,该参数是专门为满足您的视图逻辑目的而设计的类。下面是一个典型的 POST 操作在 ASP.NET MVC 中的样子的示例:
[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
if (!ModelState.IsValid)
{
// validation on the view model failed => redisplay the view
// so that the user can fix the errors
return View(model);
}
// At this stage you know that the model has passed validation
// It is here that you would typically map the view model to some domain model(s)
// and pass them to your DAL for some processing.
// Finally when this processing completes redirect (Redirect-After-Get pattern)
return RedirectToAction("Success");
}
4) 什么是 mvc 中的远程验证?
它是一个用属性修饰的视图模型属性,该[Remote]
属性反过来在相应的输入字段上发出一些 HTML5 data-* 属性。反过来,jquery.validate.unobtrusive.js
脚本将使用这些属性向相应的控制器操作发送 AJAX 请求,以在实际提交表单之前执行验证。请随时阅读相应的文档: http: //msdn.microsoft.com/en-us/library/gg508808 (v=vs.98).aspx
a) 如果我的静态函数或静态类函数很少,那么我们可以直接从视图中调用它吗?
不,当然不。这个问题没有任何意义。除了控制器操作之外,视图不知道任何服务器端特定的事情。因此,如果您想从视图中调用某个东西,那么在 ASP.NET MVC 世界中,这个东西被称为控制器动作。您当然可以使用 AJAX 或其他名称。
b)我们可以直接从视图中控制方法吗?
是的,当然,如果这个控制器方法返回一个ActionResult
在这种情况下这个控制器方法有一个名称:控制器动作。
c) 如何直接从视图调用任何泛型方法
绝对不可能。如果可能的话,那将是一个巨大的安全漏洞。您只能从视图中调用控制器操作。
e) 我们可以直接从视图调用任何模型方法吗?
不,看在基督的份上。我再说一遍:如果可能的话,那将是一个巨大的安全漏洞。您只能从视图中调用控制器操作。
我想使用数据注释,但我希望数据注释应该在页面中呈现不同的 js 以获取花哨的验证消息。如何使用带有数据注释的不同 jquery 验证插件......我们需要更改代码的地方。
对不起,我完全不知道你在这里问什么。ASP.NET MVC 客户端验证与jquery.validate
插件紧密结合(我邀请您阅读其文档以更好地理解其功能:http: //jqueryvalidation.org/documentation/)。如果这个插件不能满足你的要求,毕竟 ASP.NET MVC 视图会吐出 HTML,所以你可以随意使用一些可能满足你特定需求的大量可用的 javascript 验证插件。
希望这能回答你的一些问题。下次您在 StackOverflow 上发布问题时,请确保它非常具体,而不是询问整个世界的哲学(就像您在此处所做的那样)。做好功课,阅读文档,如果您有具体问题,请发布您的代码,解释您遇到的困难,我们将很乐意提供帮助。