我是mvc的新手,并通过浏览wrox书来学习它。我遇到了一些事情,我正在寻找好的澄清。为一次性提出许多问题而道歉。
当我们使用@ Html.DisplayFor然后在客户端呈现什么html控件? 当我们使用@ Html.EditFor然后在客户端呈现什么html控件?
我总是看到ModelState.IsValid返回true?什么时候实际返回假?
我尝试这样做,如ModelState [“Name”]或ModelState [“Name”]。ToString()都给出了错误。
4)mvc中的远程验证是什么?
我试图像这样显示模型文本,但没有
@ Html.LabelFor(m => m.Name,new {@id =“name”,@ class =“”,title =“@ m.Name”})
我们不能像这样指定或分配模型文本title =“@ m.Name”吗?如果没有那么我怎么能将模型文本分配给title属性?
当我们使用html控件属性
时需要使用@符号6)是否可以直接从视图中调用不同类型的函数/方法 我想知道
a)如果我有很少的静态函数或静态类函数,那么我们可以直接从视图中调用它吗?
b)我们可以直接从控制器方法查看吗?
c)如何直接从视图中调用任何泛型方法?
d)是否可以直接从视图调用任何操作方法?
e)我们可以直接从视图调用任何模型方法吗?
这是可能的,而不是请解释原因和示例代码
我想使用数据注释但我希望数据注释应该在页面中呈现不同的js以用于花哨的验证消息。如何使用不同的jquery验证插件和数据注释....我们需要在代码中进行更改。
请用示例&来回答我所有的问题。示例代码以便更好地理解。感谢
答案 0 :(得分:2)
当我们使用@ 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?什么时候实际返回假?
当ModelState中添加了错误时。如果您在视图模型上使用了一些数据注释来进行验证,并且提交给服务器的值未通过此验证,则可能会发生这种情况。通常,它是将请求值绑定到视图模型时将错误消息添加到ModelState(使ModelState.IsValid
返回false)的默认模型绑定器。
我试着这样做,比如ModelState [" Name"]或ModelState [" Name"]。ToString()都给出错误。
在ASP.NET MVC中,您使用视图模型。您的[HttpPost]
控制器操作将视图模型作为参数,该类是专门为满足视图逻辑目的而设计的类。以下是ASP.NET MVC中典型POST操作的示例:
[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,所以感觉不仅仅是免费使用一些可能符合你特定需求的gazillions可用的javascript验证插件。
希望这能回答你的一些问题。下次在StackOverflow上发布问题时,请确保它非常具体,而不是询问整个世界的理念(正如您在此处所做的那样)。做好功课,阅读文档,如果您遇到具体问题,请发布您的代码,解释您遇到的困难,我们将很乐意为您提供帮助。