Asp.net mvc 3 如何在MVC3中获取输入字段前缀名称
我有ViewModel,它使用这个ViewModel和控制器 在视图中,我有如下输入字段: @EditorFor(model=>model.TransitApplication.ApplicationDate) 字段名为TransitApplication_ApplicationDate 我想从数据库中的视图更新一些数据,但有一个问题 控制器更新源Asp.net mvc 3 如何在MVC3中获取输入字段前缀名称,asp.net-mvc-3,razor,prefix,Asp.net Mvc 3,Razor,Prefix,我有ViewModel,它使用这个ViewModel和控制器 在视图中,我有如下输入字段: @EditorFor(model=>model.TransitApplication.ApplicationDate) 字段名为TransitApplication_ApplicationDate 我想从数据库中的视图更新一些数据,但有一个问题 控制器更新源 public ActionResult Update(int id, FormCollection collection) {
public ActionResult Update(int id, FormCollection collection)
{
string prefix = "TransitApplication";
TransitApplication transitApplication = transitApplicationRepozitory.GetById(id);
if (transitApplication == null)
return Content("Error! Not Found!");
if (TryUpdateModel(transitApplication, prefix))
{
if (ModelState.IsValid)
{
transitApplicationRepozitory.Update(transitApplication);
transitApplicationRepozitory.Save();
return RedirectToAction("Index");
}
}
return Content("Error!");
}
我希望以编程方式获取前缀(TransitApplication)名称,而不是像以前那样
字符串前缀=“TransitApplication”
一些建议?看到表单前缀是使用模型属性的类名构建的,那么:
if(TryUpdateModel(transitApplication,typeof(transitApplication).Name))
这将删除您的神奇字符串-虽然这实际上不是模型类上的属性名称,但我猜如果重命名了类,您可能也希望重命名模型上的引用属性-尽管它有点脆弱
另一种选择是,您可以使用类似这样的东西,它允许您以字符串的形式获取属性名称,如var-propertyInfo=GetPropertyInfo(yourModelObject,u=>u.UserID)代码>-尽管您的action atm中当前没有实例化的模型类