0

ボタンに変更したいリンク ウィッチがあります。リンクはパラメーターを通過し、次のようになります。

@Html.ActionLink("View", "Print", new { id = item.SalesContractId })

このパラメーター{ id = item.SalesContractId }を持つボタンに置​​き換えたいと思います

私のボタンは次のようになります。

<input type="button" value="Print" id="btnFromIndexPrint" />

誰かがこれを行う方法を教えてもらえますか?

これが私のページの外観です。私が達成しようとしていることを確認できます。

@model IEnumerable<Contract.Models.tbSalesContract>


<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
</head>
<body>
    <p>
        @Html.ActionLink("Create New", "Edit")
    </p>
    <table>
        <tr>            
            <th>
                Company
            </th>
            <th>
                Trading As
            </th> 
            <th>
                Created
            </th>           
            <th>
                Updated
            </th>
            <th></th>
        </tr>

    @foreach (var item in Model) {
        <tr>                     
            <td>
                @Html.DisplayFor(modelItem => item.CompanyName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.TradingAs)
            </td> 
            <td>
                @Html.DisplayFor(modelItem => item.C_date)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.C_updateDate)
            </td>
            <td>
               @* @Html.ActionLink("View", "Edit", new { id = item.SalesContractId }) *@
                <input type="button" value="View" id="btnFromIndexView" />

            <td>
            @* Add Button to print only if contract state is finalized *@
            @if (item.IsFinal) 
            {
                @Html.ActionLink("Print", "Print", new { id = item.SalesContractId })
                <input type="button" value="Print" id="btnFromIndexPrint" />

            }
            </td>
            </td>
        </tr>
    }

    </table>
</body>
</html>
4

2 に答える 2

2

ActionLink が生成するソース コードを見ると、これが単なる通常のハイパーリンクであることがわかります。id パラメータが URL に追加されます。

したがって、ハイパーリンクをボタンに置​​き換えることは同じではありません。

ASP.NET MVC データは、いくつかの方法でサーバーに送信できます。ActionLink が使用するのは、データを URL に追加することです。ルーティング メカニズムは、それらを Action メソッドの特定のプロパティにマップします。

データを送信するもう 1 つの方法は、HTML フォームを使用することです。フォームには、フォーム データをサーバーに送信する送信ボタンを含めることができます。

ASP.NET MVC は、アクション メソッドの可能な値を検索するときに、次のソースをチェックします。

  1. アクションが子アクションの場合、以前にバインドされたアクション パラメーター
  2. フォーム フィールド (Request.Form)
  3. JSON リクエスト本文 (Request.InputStream) のプロパティ値。ただし、リクエストが AJAX リクエストの場合のみ
  4. ルート データ (RouteData.Values)
  5. クエリ文字列パラメーター (Request.QueryString)
  6. 投稿されたファイル (Request.Files)
于 2012-06-04T12:45:47.107 に答える
1

リンクではなくボタンを使用する理由 ルック アンド フィールが気になる場合は、CSS を適用して、リンクをボタンのように見せることができます。

ハイパーリンク (<a>) は、Web ページ間の接続を形成するために作成されるものです。あなたの場合、ボタンの代わりにハイパーリンクを使用することをお勧めします。ボタン (送信以外) は、javascript を使用してクライアント側のアクションを実行する場合に適しています。

それでもボタンを使用したい場合は、何らかの JavaScript に依存してコントローラー アクションを呼び出す必要があります。

于 2012-06-04T13:53:01.883 に答える