14

フォームにキャンセルボタンがあります:

@using (Html.BeginForm("ConfirmBid","Auction"))
        {
          some stuff ...

                    <input type="image" src="../../Content/css/img/btn-submit.png" class="btn-form" />
                    <input type="image" src="../../Content/css/img/btn-cancel.png" class="btn-form" />

        }

問題は、このボタンをクリックしたときに特定のビューに移動することです。どうすればよいですか?

4

9 に答える 9

28

@ Html.ActionLinkヘルパーメソッドを使用して[キャンセル]ボタンをアンカータグとして変換し、リンクをボタンのように見せるためのcssクラスを適用してから、そのリンクのコントローラーアクションで特定のビューを返すことができます。

@Html.ActionLink("Cancel","Index","Products",null, new { @class="clsButtonFake"})

また

フォームの2つの送信ボタンを使用します。1つは実際の送信用で、もう1つはキャンセル用です。コントローラアクションで、アクションメソッドを呼び出したボタンを確認します。あなたはこの答えでそれについてもっと読むことができます。

于 2012-03-28T18:20:31.900 に答える
5

多くの回答は、ブラウザ、クローム、またはすべてではありませんでした。

これはすべてうまくいきました-

<input type="button" value="Cancel" onclick="location.href='@Url.Action("Index","Home")';"/>
于 2014-07-08T02:07:56.087 に答える
4

これは私のボタンのHTMLです:

<button type="button"
        class="btn btn-inverse"
        id="cancel"
        onclick="window.history.back()">
        <i class="icon-remove icon-large"></i>
        <br />@Localization.Cancel
</button>

次にonclick、いくつかのビューで属性をカスタマイズするために、これを行います。

<script>

    $(document).ready(function ()
    {
        $("#cancel").
            attr("onClick",
            "document.location.href='@Html.Raw(Url.Action("Index", "Standard",
             new { ManualId = Model.ManualId, ChapterId = Model.ChapterId }))'");
    });

</script>
于 2013-06-30T08:10:59.540 に答える
3

または、スタイル付きの送信ボタン:

<input type="submit" value="Save Form" name="Save" class="submit-button btn-form" /> 

次に、キャンセルボタンのJavascript:

<input type="button" onclick="document.location.href('Home/Index')" value="Cancel" class="cancel-button btn-form" />
// Note: This avoids any of the validation that may happen in the model that 
// normally gets triggered with a submit
于 2012-07-05T16:17:22.190 に答える
2

したがって、Shyjuのアプローチでは、組み込みのMVCActionLinkヘルパーを使用します。これを行うには、cssを介して画像またはアイコンを作成する必要があります。ただし、これは、特にcssの画像にbase64文字列を使用する場合は、はるかにキャッシュ可能です。

Adautoのアプローチは、マークアップをより細かく制御できるので気に入っています。MVC Htmlヘルパーは素晴らしいですが、それでも「心配しないでください。私たちがあなたに代わって処理します」というWebFormsの考え方に頭を悩ませているようです。

追加するのはUrl.Contentです。

<a href="@Url.Action("CancelBid", "Auction")"><img src="@Url.Content("~/Content/css/img/btn-submit.png" class="btn-form" /></a>

ビューにコンテンツの場所を基準にしたコンテンツの場所を認識させることは、決して良い考えではありません。

于 2012-03-28T18:32:29.043 に答える
2
<a href="/Auction/[ActionName]">
    <input type="image" src="@Url.Content("~/Content/css/img/btn-cancel.png")" class="btn-form" />
</a>

ボタンとしての外観を維持したい場合は、次のようにすることができます。

<a href="/Auction/[ActionName]">
    <input type="button" value="Cancel">
</a>

ここ[ActionName]で、は目的のビューを返すアクションの名前です。

于 2012-03-28T18:51:55.853 に答える
1
<a href="@Url.Action("CancelBid", "Auction")"><img src="../../Content/css/img/btn-submit.png" class="btn-form" /></a>
于 2012-03-28T18:26:02.187 に答える
0

キャンセルボタンを再利用できるように、ヘルパーを作成することになりました。フォームに入力した後、誤ってキャンセルボタンをクリックした場合に備えて、js確認を追加しました。

@helper FormCancelButton(string cancelUrl)
{
    <button type="button" class="btn" onclick="if (confirm('Cancel changes?')) location.href = '@cancelUrl';">Cancel</button>
}

私はそれを次のように呼びます:

@FormCancelButton(Url.Action("Index", "User" ))

本当に熱心な場合は、フォームのダーティ状態を検出して、フォームが変更された場合にのみ確認ダイアログを表示することもできます。

于 2016-12-19T05:26:53.350 に答える
-1
     <asp:Button runat="server" class="btn btn-danger"
       CausesValidation="false" onclick="Cancel_Click" Text="Cancel"/>


     protected void Cancel_Click(object sender, EventArgs e)
     {
        Response.Redirect("Test.aspx");
     }
于 2018-07-30T06:28:16.917 に答える