1

在处理表单帖子时,我有类似的东西

    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)
4

3 回答 3

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");
        }
    }
于 2008-08-29T21:09:42.947 回答
0

将它包装在一个接口中并模拟它。

于 2008-08-26T18:28:10.250 回答
0

使用来自http://www.codeplex.com/MVCContrib的 NameValueDeserializer而不是 UpdateFrom。

于 2008-08-26T22:21:41.140 回答