0

ドロップダウンリストを作成したいのですが、送信ボタンをクリックすると、選択した値がポストバックされます。

正しくやっているかどうかはわかりませんが、これまで探し回って思いついたものです。

私はそれを正しく行っているかどうか、そしてそれがポストバックしたときに値をどこに保存するかを知りたいだけです。

@using (Html.BeginForm())
{
    @Html.DisplayName("Name:")<br />
    @Html.TextBox("NAME")<br />

    @Html.DisplayName("Password:")<br />
    @Html.TextBox("PASS")<br />

    @Html.DisplayName("Team Name:")<br />
    @Html.DropDownListFor(x => x.Teams, new SelectList(Model.Teams, "value", "TeamNAME"), new {onchange = "submit()"})

    <input type="submit" value="ADD" />
}

ここで価値を手に入れたい

[HttpPost]
        public ActionResult Index()
        {

            //GET VALUE OF THE SELECTED TEAM HERE
            return RedirectToAction("Index");
        }
4

2 に答える 2

2

かなり近いように見えます。唯一のことは、モデルにバインドされたHTMLヘルパーメソッドを一貫して使用する必要があるかどうかです。つまり、TextBoxForand DropDownListFor、またはTextBoxandを使用しますが、組み合わせて使用DropDownList​​しないでください。

モデルにバインドされたものを使用する場合は、モデルタイプをパラメーターとしてポストバックアクションに追加するだけで済みます。

public ActionResult Index(MyModel postback)

バインドされていないものについては、名前を使用してパラメーターを個別に追加できます。

public ActionResult Index(string NAME, string PASS, string TEAM)

(に変更すると仮定します@Html.DropDownList("TEAM", new SelectList(Model.Teams, "value", "TeamNAME"), new {onchange = "submit()"})

于 2012-11-24T06:41:32.110 に答える
1

詳細:以下は、チームと呼ばれるモデルを使用しており、ビューでそのモデルを使用していることを前提としています。(コードはテストされていません)

意見

@Html.DropDownListFor("Teams", String.Empty)

コントローラ

[HttpGet]
public ActionResult Index()
{
    ViewBag.Teams = new SelectList(db.Team, "TeamId", "TeamNAME");
    return View();
}

[HttpPost]
public ActionResult Index(Team team)
{
    // Here is your selected Team id
    //team.TeamId

    return View();
}

DropDownListの使用の詳細については、このチュートリアルを確認してください

MVC4チュートリアル

于 2012-11-24T06:41:30.047 に答える