2013-10-12 25 views
5

私はaspウェブフォームを持っています。私はそのフォームを投稿するために剃刀のテクニックを使用しています.問題は、IDとNAME属性名前とIDを指定すると、剃刀のテクニックをドロップすることができます。aspドットネットmvc4

..次の段階で、私はIDとNAME属性を使用して、フォームの値を取得しています、ので、かみそりのドロップダウンリストにVIEWコードです:

@Html.DropDownList("ID", (SelectList) ViewBag.list, " -- Select Business Type -- ") 

CONTROLLER:

public ActionResult coverage() 
{ 
    var query = db.Database.SqlQuery<businessDropDownModel>("businesDropDownSP"); 
    ViewBag.list = new SelectList(query.AsEnumerable(), "ID", "BusinessTypeName", "----select----"); 

    return View(); 
} 

MODEL:

public class businessDropDownModel 
{ 
    public int ID { set; get; } 
    public string BusinessTypeName { set; get; } 
} 

答えて

8

@Html.DropDownList("MyIdAndName", (SelectList) ViewBag.list, " -- Select Business Type -- ")の最初の引数は、IDとselectタグの名前でもあります。

名前やIDまたはあなたがhtmlのオプションを属性を使用することができ、他の属性を設定したいのであれば、

@Html.DropDownList("MyIdAndName", (SelectList) ViewBag.list, " -- Select Business Type -- ") 

<select id="MyIdAndName" name="MyIdAndName">...</select> 
+0

を、感謝 – Rahil

+0

はどのようにコントローラでそのドロップダウンIDを呼ぶのですか? – ejmtv

10

をレンダリングします。

注:メソッドには奇妙なものがあります。属性辞書を使用して "id"をオーバーライドすることはできますが、ではなく、「名前」をとしてください。

例:

@Html.DropDownList("Selected", Model.SelectList, "First Option", new { name = "Name", id = "id"}) 

がレンダリングされます:

<select id="id" name="Selected">...</select> 

をだから、結論がある:あなたが名前とIDが異なるようにしたい場合は、あなたが名前を望むものに名前パラメータを設定そして、辞書を使ってidを上書きする。

2

Idと異なる名前に設定する必要がある場合は、htmlAttributesパラメータを使用してコントロールのIDを設定できます。 DropDownListヘルパの最初のパラメータを使用して、コントロールの名前を設定します。

@Html.DropDownList("Job.DefaultProfitCenter", (SelectList)ViewBag.DefaultProfitCenter, " -- Select -- ", new { id = "Job_DefaultProfitCenter" }) 

これは、ドロップダウンリストについては、以下のHTMLが生成されます。私はそれを得た

<select id="Job_DefaultProfitCenter" name="Job.DefaultProfitCenter"> 
    <option value=""> -- Select -- </option> 
    <option value="0">Option 1</option> 
</select> 
関連する問題