在处理表格帖子时我有类似
的内容 public ActionResult Insert()
{
Order order = new Order();
BindingHelperExtensions.UpdateFrom(order, this.Request.Form);
this.orderService.Save(order);
return this.RedirectToAction("Details", new { id = order.ID });
}
我没有在方法中使用显式参数,因为我预计必须适应可变数量的字段等,并且具有20多个参数的方法不具吸引力。
我想我这里唯一的选择是模拟整个HttpRequest,相当于Rob Conery所做的。这是最佳做法吗?很难说一个如此新的框架。
我也看到了涉及使用ActionFilter的解决方案,以便您可以将上述方法签名转换为类似
的方法[SomeFilter]
public Insert(Contact contact)
答案 0 :(得分:1)
我现在正在使用ModelBinder,这样我的动作方法就可以(基本上)看起来像:
public ActionResult Insert(Contact contact)
{
if (this.ViewData.ModelState.IsValid)
{
this.contactService.SaveContact(contact);
return this.RedirectToAction("Details", new { id = contact.ID });
}
else
{
return this.RedirectToAction("Create");
}
}
答案 1 :(得分:0)
将其包装在界面中并模拟它。
答案 2 :(得分:0)
使用http://www.codeplex.com/MVCContrib中的NameValueDeserializer而不是UpdateFrom。