0

私のWebページでは、というパラメータ値に従ってボタンを設定する必要がありますButtonType。もしそうなら、私はすべてのボタンを非表示にする必要がある
としましょう。ButtonType == "Edit"butUpdate

MVCアクションメソッドを使用してHTMLボタンを表示/非表示にする方法を知りたいです。

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult SupplierDetail(int SupplierID, string ButtonType)
    {   
        var Supplier = supplierListRepository.Supplier_SelectByID(SupplierID);
        return View(Supplier);
    }

Asp.netMvcRazorフォームを使用しています。

@using (Html.BeginForm("SupplierDetail_SubmitClick", "Supplier", FormMethod.Post, new { id = "frmSupplierDetail" }))
{   
@Html.ValidationSummary(true)
<table cellpadding="0" cellspacing="0" border="0" style="width:450px; height:auto">
.....
<tr>
    <td>@Html.LabelFor(model => model.Phone)</td>
    <td>@Html.EditorFor(model => model.Phone)
        @Html.ValidationMessageFor(model => model.Phone)</td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
</tr>
<tr>
    <td>&nbsp;</td>
    <td>
        <input type="submit" id="butSave" name="butSave" value="Save" style="width:100px; height:auto" />
        <input type="submit" id="butUpdate" name="butUpdate" value="Update" style="width:100px; height:auto" />
        <input type="submit" id="butDelete" name="butDelete" value="Delete" style="width:100px; height:auto" />
        <input type="submit" id="butReset" name="butReset" value="Reset" style="width:100px; height:auto" />
    </td>
</tr>
</table>
</div>

<div id="content">
@Html.ActionLink("Back to List", "Index")
</div>

}

すべての提案をいただければ幸いです。

4

2 に答える 2

2

ボタンの表示/非表示は、コントローラー アクションの責任ではありません。コントローラーのアクションは、ボタンの意味を認識していません/認識すべきではありません。それはビューに存在する概念です。一方、コントローラーアクションは、モデルと通信し、ビューに渡して表示するビューモデルを準備することになっています。したがって、ボタンの可視性を定義するプロパティを含むビュー モデルを定義し、ButtonType パラメーターの値に基づいて、これらのプロパティを適切に設定できます。supplier次に、コントローラー アクションは、現在渡しているオブジェクトの代わりに、このビュー モデルをビューに渡します。明らかに、ビュー モデルには、このサプライヤーを保持するためのプロパティもあります。ビューに残されているのは、ビューモデルのプロパティの値に基づいて、ボタンの表示方法を決定することだけです。

于 2012-05-23T06:51:20.117 に答える
1

コントローラーで、buttontype を viewdata に追加します。

ViewData["ButtonType"] = ButtonType

次に、ビュー自体に、if/else ステートメント、またはすべてのケースに適したその他のロジックを追加して、何をレンダリングするかを決定できます。

@if (ViewData["ButtonType"].ToString() == "Edit")
{
    <input type="submit" id="butUpdate" name="butUpdate" value="Update"    
     style="width:100px; height:auto" />      
}

もちろん、これは何ができるかのデモにすぎません。Yuo はコードをビジネス ロジックに適合させる必要があります。

于 2012-05-23T06:52:01.727 に答える