Asp.net mvc 4 MVC4枚举绑定

Asp.net mvc 4 MVC4枚举绑定,asp.net-mvc-4,Asp.net Mvc 4,我有一个模型,我正在传递给一个视图。此模型具有enum类型的属性。例如,州,即德克萨斯州、阿拉斯加州 我希望在标签/文本框中填充状态。如何将枚举解析到视图中的标签/文本框?要在文本框或标签中显示枚举的值,请使用@Html.TextBoxFor(m=>m.State)或@Html.LabelFor(m=>m.State)要在文本框或标签中显示枚举的值,请使用@Html.TextBoxFor(m=>m.State)或@Html.LabelFor(m=>m.State)。您可以使用视图特定属性为视图创

我有一个模型,我正在传递给一个视图。此模型具有enum类型的属性。例如,州,即德克萨斯州、阿拉斯加州


我希望在标签/文本框中填充状态。如何将枚举解析到视图中的标签/文本框?

要在文本框或标签中显示枚举的值,请使用
@Html.TextBoxFor(m=>m.State)
@Html.LabelFor(m=>m.State)
要在文本框或标签中显示枚举的值,请使用
@Html.TextBoxFor(m=>m.State)
@Html.LabelFor(m=>m.State)

您可以使用视图特定属性为视图创建视图模型。为您的状态创建字符串属性。在您的操作中设置该值并使用该值

public class UserProfileVM
{
  public string Name { set;get;}
  //Other properties for your view as needed

  public string State { set;get;}
}
在action方法中,设置来自任何源(enum或其他任何源)的值

public ActionResult Show()
{ 
  var vm=new UserProfileVM();
  vm.State="Texas";  // You can replace this and read from your enum
  return View(vm);    
}
在我看来

@model UserProfileVM
@Html.TextBoxFor(s=>s.State)

您可以使用视图特定属性为视图创建视图模型。为您的状态创建字符串属性。在操作中设置该属性的值并使用该属性

public class UserProfileVM
{
  public string Name { set;get;}
  //Other properties for your view as needed

  public string State { set;get;}
}
在action方法中,设置来自任何源(enum或其他任何源)的值

public ActionResult Show()
{ 
  var vm=new UserProfileVM();
  vm.State="Texas";  // You can replace this and read from your enum
  return View(vm);    
}
在我看来

@model UserProfileVM
@Html.TextBoxFor(s=>s.State)

在这种情况下,不需要中间视图模型。他们表示已经有了一个要传递给视图的模型。MVC将自动将枚举转换为字符串以供显示,并在模型绑定期间对其进行解析。在这种情况下,不需要中间视图模型。他们表示已经有了一个模型正在传递到视图。MVC将自动将枚举转换为字符串以供显示,并在模型绑定期间对其进行解析。我不确定“使用网格”是什么意思。你能说得更具体一点吗?对不起。例如,如果我使用WebGrid哦,我想你可能会对ASP.NET MVC的工作原理感到困惑。你在MVC中不使用控件。在MVC中,你有呈现/生成HTML的帮助程序,例如
@HTML.TextBoxFor()
。你可以使用WebGrid。但我不确定如何填充枚举;var grid=new WebGrid(Model.State,fieldnameprifix:“gridItems_”,pageFieldName:“inside”);你是对的,我很困惑,认为WebGrid是来自Web表单的控件,但它是WebMatrix的一个帮助程序。我不熟悉这个特定的帮助程序,只是使用了我自己的表功能。我不确定你所说的“使用网格”是什么意思。你能说得更具体一点吗?对不起。例如,如果我使用WebGrid哦,我想你可能会对ASP.NET MVC的工作原理感到困惑。你在MVC中不使用控件。在MVC中,你有呈现/生成HTML的帮助程序,例如
@HTML.TextBoxFor()
。你可以使用WebGrid。但我不确定如何填充枚举;var grid=new WebGrid(Model.State,fieldnameprifix:“gridItems_”,pageFieldName:“inside”);你是对的,我很困惑,认为WebGrid是来自Web表单的控件,但它是WebMatrix的一个助手。我对这个特定的助手不熟悉,我刚刚推出了自己的表功能。