0

うまくいけば、これはそこにいる誰かにとって簡単なものです.

モデルに「アクション」プロパティを持つ MVC コントローラーにフォームを投稿しようとしています。

残念ながら、model.action は、投稿されたモデルのアクション プロパティではなく、コントローラー アクションに解決されています。

public class PostModel
{
    public string action { get; set; }
    public string username { get; set; }
    public string password { get; set; }
}

public ActionResult DoSomething(string id, PostModel model)
{
  // id == 98f4
  // model.username == "TEST"
  // model.password == "TEST"
  // model.action == "DoSomething" NOT "TEST" as I was expecting.
}

ここに私が投稿するものがあります:

POST -> http://localhost:7832/Forms/DoSomething/98f4?username=TEST&password=TEST&action=TEST

投稿されるフォーム データを制御できないため、モデルのアクション プロパティを変更できないことに注意してください。MVC サーバー側でこの問題に対処できるようにする必要があります。

モデルのアクション プロパティの設定をコントローラーのアクションに上書きするにはどうすればよいですか? この機能は、プロジェクト内の 1 つの特定のコントローラーに対してのみ必要です。

助言がありますか?

4

1 に答える 1

0

わかりました私は問題を理解しました。実際には、コントローラーのアクションをヒットするために fiddler2 を使用していました。URL の一部としてアクションがあった場合、MVC はコントローラー アクションに置き換えられます。

request.body のアクション部分を作成し、「Content-Type: application/x-www-form-urlencoded」をヘッダーに追加すると、コントローラー モデルに期待値が含まれていました。

于 2013-07-21T22:52:46.357 に答える