Asp.net mvc 3 将常量值绑定到视图中的最佳方法(MVC3)
我有一个常量值,如“必需”、“可选”和“隐藏”。我想把它绑定到dropdownlist中。到目前为止,我所做的是下面的代码,这是在视图中编码的。将常量值绑定到dropdownlist的最佳方法是什么?我想在控制器中实现它,并在视图中调用它Asp.net mvc 3 将常量值绑定到视图中的最佳方法(MVC3),asp.net-mvc-3,Asp.net Mvc 3,我有一个常量值,如“必需”、“可选”和“隐藏”。我想把它绑定到dropdownlist中。到目前为止,我所做的是下面的代码,这是在视图中编码的。将常量值绑定到dropdownlist的最佳方法是什么?我想在控制器中实现它,并在视图中调用它 @{ var dropdownList = new List<KeyValuePair<int, string>> { new KeyValuePair<int, string>(0, "Required"), ne
@{
var dropdownList = new List<KeyValuePair<int, string>> { new KeyValuePair<int, string>(0, "Required"), new KeyValuePair<int, string>(1, "Optional"), new KeyValuePair<int, string>(2, "Hidden") };
var selectList = new SelectList(dropdownList, "key", "value", 0);
}
从属性
EM_RegTitle
判断,我猜您使用的模型是以某种方式从数据库自动生成的。也许是实体框架?如果是这种情况,那么您应该能够在与您的ORM/实体框架实体相同的命名空间中创建分部类,并添加额外的属性。比如:
public partial class MyModel
{
public SelectList MyConstantValues { get; set; }
}
然后,您可以将您的SelectList
与模型的其余部分一起传递
在MVC应用程序的每一层中使用ORM/EF实体通常都会遇到一些问题,尽管在线代码示例中看起来很简单,但我建议您创建自己的视图模型类,并使用AutoMapper之类的工具来填充这些视图。这样,您只传递视图所需的数据,并且避免传递DB行,因为DB行可能包含您不希望用户查看或更改的其他敏感信息
您还可以将生成静态值选择列表的逻辑移动到域模型中,或移动到服务类中,以帮助减少控制器中的代码量和混乱
希望这对你有所帮助
例如
您的视图模型(将其放入“模型”目录中):
您的控制器(进入“控制器”目录):
现在右键单击编辑器中的SimpleController
类名,然后选择“添加视图…”
创建一个新视图,勾选强类型并选择您的MyViewModel
类作为模型类
现在编辑视图,并执行与前面代码中类似的操作。您会注意到视图顶部现在应该有一个@model
行。这表示您的视图是强类型视图,并使用MyViewModel
模型
如果你陷入困境,网上有很多关于MVC和强类型视图的基础知识的例子。从属性
EM_RegTitle
判断,我猜你使用的模型是以某种方式从数据库自动生成的。也许是实体框架?如果是这种情况,那么您应该能够在与您的ORM/实体框架实体相同的命名空间中创建分部类,并添加额外的属性。比如:
public partial class MyModel
{
public SelectList MyConstantValues { get; set; }
}
然后,您可以将您的SelectList
与模型的其余部分一起传递
在MVC应用程序的每一层中使用ORM/EF实体通常都会遇到一些问题,尽管在线代码示例中看起来很简单,但我建议您创建自己的视图模型类,并使用AutoMapper之类的工具来填充这些视图。这样,您只传递视图所需的数据,并且避免传递DB行,因为DB行可能包含您不希望用户查看或更改的其他敏感信息
您还可以将生成静态值选择列表的逻辑移动到域模型中,或移动到服务类中,以帮助减少控制器中的代码量和混乱
希望这对你有所帮助
例如
您的视图模型(将其放入“模型”目录中):
您的控制器(进入“控制器”目录):
现在右键单击编辑器中的SimpleController
类名,然后选择“添加视图…”
创建一个新视图,勾选强类型并选择您的MyViewModel
类作为模型类
现在编辑视图,并执行与前面代码中类似的操作。您会注意到视图顶部现在应该有一个@model
行。这表示您的视图是强类型视图,并使用MyViewModel
模型
如果您陷入困境,在线上有很多示例可以帮助您了解MVC和强类型视图的基本知识。您更喜欢查看模型并在控制器中填充数据
class MyViewModel
{
public string ReqTitle { get; set; }
public SelectList SelectListItems { get; set; }
}
然后您可以使用:
@Html.DropDownListFor(model => model.EM_ReqTitle, model.SelectListItems)
您更喜欢查看模型并在控制器中用数据填充它
class MyViewModel
{
public string ReqTitle { get; set; }
public SelectList SelectListItems { get; set; }
}
然后您可以使用:
@Html.DropDownListFor(model => model.EM_ReqTitle, model.SelectListItems)
是的,你说得对,模型是自动生成的。我使用EF作为模型。无论如何,我怎样才能为MyConstantValues分配一个值?你能给我一个示例实现吗?谢谢,我在上面添加了一些示例代码。你最好的选择是使用Google查找MVC3和强类型视图的介绍。是的,你说得对,模型是自动生成的。我使用EF作为模型。无论如何,我怎样才能为MyConstantValues分配一个值?你能给我一个示例实现吗?谢谢,我在上面添加了一些示例代码。您最好使用Google查找MVC 3和强类型视图的介绍。好的,那么我如何设置上述示例中的“必需”、“可选”和“隐藏”值?好的,那么我如何设置上述示例中的“必需”、“可选”和“隐藏”值?