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

时间:2014-06-29 22:07:11

标签: c# asp.net-mvc razor

我只是想知道" For"在.LabelFor或.dditorFor中的mvc html助手扩展意味着什么?我理解参数接受一个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>
}

2 个答案:

答案 0 :(得分:4)

  
    

Html.LabeFor()返回HTML标签元素以及由指定表达式表示的属性的属性名称。

  

对于表示在强类型视图中将控件与特定的模型属性绑定。

例如:

我的模型只有两个属性。

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"/>

}

现在,在from模型对象中将发布模型属性中表单元素的值。

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将在带有模型的操作中发布时,文本框值将在Name属性中发布,无论我们在文本框中输入了什么。这就是强类型视图在asp.net mvc中的工作方式。

其他 Html帮助的情况也是如此,Html.LabelFor()Html.HiddenFor它们主要用于强类型视图,以反映行动中元素的值模型的形式。

有关进一步详细研究的信息,您可以在此处阅读有关Html助手的更多信息:

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/

答案 1 :(得分:1)

for指的是您正在创建它的属性。 @Html.LabelFor(model => model.Title)是模型上Title字段的标签。更具体地说,它是您提供的Expression