対ゲット:Html.Action - 投稿
<div id='Product'>
@Html.Action("Create", "Product")
</div>
私は場所に埋め込むための別のコントローラのアクションに製品の作成フォームの絵を委任することができますので、それは便利です。しかし、私の問題はコントローラのアクションの[HttpPost]と呼ばれることがあります。
@ Html.Action()にGETバージョンを強制的に呼び出す方法はありますか?
対ゲット:Html.Action - 投稿
<div id='Product'>
@Html.Action("Create", "Product")
</div>
私は場所に埋め込むための別のコントローラのアクションに製品の作成フォームの絵を委任することができますので、それは便利です。しかし、私の問題はコントローラのアクションの[HttpPost]と呼ばれることがあります。
@ Html.Action()にGETバージョンを強制的に呼び出す方法はありますか?
方法はです。ページの現在のリクエストがポストメソッドの場合は、名前がHttpPost
のメソッドを検索します。
何が起こっているのかは、現在のページをPOSTしていることです。同様に、実行するすべてのアクションもPOSTでなければならないと想定しています。
このような別の方法に切り替えるように強制する方法はありません。あなたのアクションにAcceptVerbs
属性を追加
試してみてください。
[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
public ActionResult Create()
{
//Your code
}
これは両方GETとPOSTリクエストのために動作します。
えええええええええええと、そうすれば、両方の動作を同じメソッドにコーディングする必要があります。つまり、メソッド内でPostまたはGetが実行されたかどうかを判断する方法が必要です。これはどのように行われますか? – ekkis
私はこの問題に直面しましたが、これは識別するのが難しかったです。私も同様の問題になったと確かに解決策がある
<div id='Product'>
@{Html.RenderPartial("_CreatePartial", new Product());}
</div>
:私はこのように、代わりにHtml.RenderPartialを使用して終了しました。 ちょうど要求がはい、私はそれを理解しました同様の問題になった誰に
@if(!IsPost)
{
HTML.Action("ActionName")
}
よろしく...
.... IsPostプロパティとVOILAを使用してビューにGETまたはPOSTであるかどうかを確認してください。それは彼らのひどい前提です。私がやったことは、あいまいさがないようにアクションの名前を変更することです。 – ekkis
これはおそらく最適な解決策です。喜んで助けになる。 – Buildstarted