フォームにドロップダウンリストを追加し、2 つの値userid
とドロップダウンリストに追加しusername
、ボタンをクリックしたときにユーザーが選択した値を取得したいと考えています。私は MVC が初めてで、これまでドロップダウンリストに取り組んでおらず、いくつかのサンプルを試しましたが、思い通りに機能していないようです。
質問する
2298 次
4 に答える
0
多くの MVC3 概念をジャンプします。ASP.NET MVC を初めて使用する場合は、いくつかのチュートリアルを参照してください。
このコードは次のことに役立ちます。
見る
@using (Html.BeginForm("ACTION NAME", "CONTROLLER NAME"))
{
<select name="select">
<option value="username" selected>User name</option>
<option value="userid">User id</option>
</select>
<input type="submit" />
}
アクション
[HttpPost]
public ActionResult ACTIONNAME(string select)
{
//...
}
ご注意ください:
ACTION NAME
そしてヘルパーCONTROLLER NAME
で。コードでこれを変更する必要がありBeginForm
ますselect
名前 ("select") とアクションでの引数の名前 ("select") 。これは偶然ではなく、慣習です。MVC はname
attr を使用してデータをバインドします- オプションの
selected
属性は、それをデフォルトのオプションにします
よろしく
于 2012-07-30T05:39:11.987 に答える
0
ビューごとに新しいモデル クラスを作成する必要はありません。これをコントローラーに配置するだけです。
ViewBag.FieldName = new SelectList(new List<SelectListItem>() {
new SelectListItem { Value = "userid", Text = "User ID" },
new SelectListItem { Value = "username", Text = "User name" }
});
そして、これが表示されます:
@Html.DropDownList("FieldName")
于 2012-07-30T12:46:21.677 に答える
0
次のような SelectListItem のコレクションを作成する必要があります。
IEnumerable<SelectListItem> selectList = from c in areaListResponse.Item select new SelectListItem { Text = c.AreaName, Value = c.Id.ToString() };
この selectList をビューに渡します。
return View(selectList);
あなたのcshtmlで:
@model IEnumerable<SelectListItem> @Html.DropDownListFor(m => m.RequestAreaName, Model)
複雑なオブジェクトが必要な場合は、次のようなラッパー クラスが必要になる場合があります。
public class RaiseRequestModelWrapper { public IEnumerable<SelectListItem> GetModel { get; set; } public RaiseRequestModel PostModel { get; set; } }
于 2012-07-30T13:25:44.870 に答える
0
それを行う方法の1つは、モデルプロパティのリストをバインディングとして送信し、値については、次のような別のプロパティにバインドできることを確認してください。
public class YourModel
{
public List<UserList> OptionList { get; set; }
public String YourValue{get;set;}
}
public class UserList
{
public String UserName{get;set;}
public String UserId{get;set;}
}
@Html.DropDownListFor(model => model.YourValue, Model.OptionList, "")
ヘルパーには、値とテキストを指定するために使用されるオーバーライドされたオプションがあります。
そして覚えておいてください:
これはStackOverflowです。
あなたが試した動作しない例でさえ、貴重な帯域幅をあなたのために費やしているので、あなたを助けようとする人にとって重要です.
于 2012-07-30T06:05:30.580 に答える