什么是“为了”?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>
}

什么是“为了”?mvc中html.LabelFor的标准

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字段的标签。更具体地说,它是为您提供的表达式。