什么是“为了”?mvc中html.LabelFor的标准
本文关键字:html LabelFor 标准 mvc 为了 什么 | 更新日期: 2023-09-27 18:10:41
我只是想知道在mvc html helper扩展中的。labelfor或。editorfor中的"For"是什么意思?我理解参数接受lambda表达式,但我无法计算出"For"是什么意思?
这是我的简单cshtml文件所以你可以看到我在看什么
@model MvcTest.Models.Update
@{
ViewBag.Title = "Edit";
}
<h1>Update</h1>
@using (Html.BeginForm()) {
@Html.ValidationSummary()
<fieldset>
<legend>Update profile</legend>
@Html.HiddenFor(model => model.ID)
<div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
HTML . labefor()返回HTML标签元素和由指定表达式表示的属性的属性名。
For表示将控件绑定到强类型视图中特定的模型属性。
例如:我有一个只有两个属性的模型
public class MyModel
{
public string Name {get;set;}
public int Id { get; set;}
}
现在我们创建一个强类型视图:
@model AppNameSpace.Models.MyModel
@using (Html.BeginForm("MyAction","My",FormMethod.Post))
{
@Html.TextBoxFor(m=>m.Name)
@Html.HiddenFor(m=>m.Id)
<input type="submit" name="Save" value="Save"/>
}
现在,从模型对象将张贴与表单元素的值在模型属性。
public class MyController : Controller
{
[HttpGet]
public Action Result SomeAction()
{
return View();
}
[HttpPost]
public Action Result SomeAction(MyModel model)
{
string name = model.Name;// here you will have name value which was entered in textbox
return View();
}
}
如果我说:
Html.TextBoxFor(x=>x.Name)
现在,当from将被发送到action with model时,文本框的值将被发送到Name
属性中,无论我们在文本框中输入了什么。这就是强类型视图在asp.net mvc中的工作方式。
对于其他Html helper ,如Html.LabelFor()
, Html.HiddenFor
,它们主要用于强类型视图,以反映从元素的值在模型的表单post上的作用。
要进一步详细学习,您可能需要在这里阅读更多关于Html helper的信息:
http://stephenwalther.com/archive/2009/03/03/chapter-6-understanding-html-helpers http://www.dotnet-tricks.com/Tutorial/mvc/N50P050314-Understanding-HTML-Helpers-in-ASP.NET-MVC.html https://www.simple-talk.com/dotnet/asp.net/writing-custom-html-helpers-for-asp.net-mvc/for指的是创建它的属性。@Html.LabelFor(model => model.Title)
是模型上Title
字段的标签。更具体地说,它是为您提供的表达式。