0

NerdDinner MVC アプリのデモではconfirmButton、セットアップ時に以下が定義されていActionResult Deleteます。

public ActionResult Delete(int id, string confirmButton) {

コードで使用されていないため、何confirmButtonのために使用されますか? クリックされた送信ボタンの名前が返されると思いましたが、それは単なる空白文字列です。どのボタンが押されたかを取得するにはどうすればよいですか (たとえば、同じページにarchivedelete(またはyes, no) のボタンを含めることができます)。

4

1 に答える 1

1

ビューDelete.aspxを見ると、次の html が表示されます...

<h2>
    Delete Confirmation
</h2>

<div>
    <p>Please confirm you want to cancel the dinner titled: 
    <i> <%:Model.Title %>? </i> </p>
</div>

<% using (Html.BeginForm()) { %>

    <input name="confirmButton" type="submit" value="Delete" />        

<% } %>

ご覧のとおり、confirmButton はここにあり、値は指定した ActionResult に渡されます。

次のように 2 つのボタンを指定することもできます...

<% using (Html.BeginForm()) { %>

    <input name="confirmButton" type="submit" value="Delete" />        
    <input name="confirmButton" type="submit" value="Something Else" />        

<% } %>

パラメータには、confirmButtonクリックしたものの値が含まれます...

NerdDinner で適切に動作しない理由は奇妙ですが、簡単なプロジェクトを作成し、デフォルトの HomeController を開いて追加することで、これを簡単にテストできます。

    [HttpPost]
    public ActionResult Index(string confirmButton) {
        return View();
    }

Index.aspx に追加できます

<% using (Html.BeginForm()) { %>

    <input name="confirmButton" type="submit" value="Delete" />        
    <input name="confirmButton" type="submit" value="Something Else" />        

<% } %>

そして、あなたは行く準備ができているはずです。

于 2010-08-09T14:31:08.113 に答える