我正在使用ViewModel将数据从HTML表单获取到MVC控制器。 在ActionResult参数中,填充了ViewModel,它工作正常。
现在,除了视图模型之外,我还希望将视图模型的一个字段分开。可能吗?换句话说,我想要将MyViewModel.MyModel.Id的副本复制到另一个actionresult参数中。
这是有效的控制器方法:
public ActionResult Edit(AuditViewModelCritereViewModel model){}
现在我想拥有这种方法
public ActionResult Edit(AuditViewModelCritereViewModel model, int auditId){}
以下是模型:
public class AuditViewModelCritereViewModel
{
public AuditViewModel audit { get; set; }
...
}
public class AuditViewModel
{
public int auditId { get; set; }
...
}
我可以通过添加HiddenField来实现这一点,但是clean是最好的,我想比复制HTML id值更漂亮。
在HTML表单中,这是字段:
<input data-val="true" id="audit_auditId" name="audit.auditId" type="hidden" value="10">
这是我们感兴趣的HTTP请求内容:
这是到目前为止我尝试过的int paramater:
谢谢您的帮助。
答案 0 :(得分:-1)
是可以的
<input data-val="true" id="audit_auditId" name="auditId" type="hidden" value="10">
在要获取操作参数数据的输入字段中,输入相同的名称。
操作参数名称和字段名称应该相同。
OR
您可以通过在Controller中使用Bind Attribute来获得这些东西
public ActionResult Edit(AuditViewModelCritereViewModel model, [Bind(Prefix = "audit.auditId")]int auditId) { }