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以上のパラメーターを持つメソッドは魅力的ではありません。

ここでの私の唯一の選択肢は、Rob Conery が行ったことと同等の HttpRequest 全体をモックアップすることだと思います。これはベストプラクティスですか?非常に新しいフレームワークで見分けるのは困難です。

上記のメソッド シグネチャを次のようなものに変換できるように、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

UpdateFrom の代わりにhttp://www.codeplex.com/MVCContribの NameValueDeserializerを使用します。

于 2008-08-26T22:21:41.140 に答える