0

拡張メソッドを使用してドロップダウン リストを作成しました。選択した値をビューから取得し、コントローラーに渡したいと思います。どうすればできますか?

public static MvcHtmlString DayDropDownCalender(this HtmlHelper helper)
{        
    TagBuilder daydropdown = new TagBuilder("select");

    for (int i = 1; i <= 31; ++i)
    {
        var option = new TagBuilder("option");
        option.SetInnerText(i.ToString());
        option.MergeAttribute("value", i.ToString());
        daydropdown.InnerHtml += option.ToString();
    }

    return MvcHtmlString.Create(daydropdown.ToString(TagRenderMode.Normal));
}
4

1 に答える 1

1

<select>要素にname属性を与える必要があります。

TagBuilder daydropdown = new TagBuilder("select");
daydropdown.Attributes["name"] = "day";

そして、[HttpPost]コントローラーアクションは単にそれを引数として取ることができます:

[HttpPost]
public ActionResult Index(string day)
{
    ... the day parameter will contain the selected value
}

または、単純なスカラー値以上のものをコントローラー アクションに渡したい場合は、必要なすべての情報を含むビュー モデルを単純に設計します。

public class MyViewModel
{
    public string Day { get; set; }
    public string Month { get; set; }
    public string Year { get; set; }
    ...
}

あなたのコントローラーアクションが取ること:

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    ...
}
于 2013-07-20T09:24:16.297 に答える