从View中的SelectableItemList传递值

时间:2017-05-05 05:42:11

标签: asp.net asp.net-mvc razor

我的控制器中有一个字符串列表,显示在DropBox中。

控制器

public ActionResult what()
{
    LeetCode lc = new LeetCode();
    lc.ProblemList = new[] 
    {
        new SelectListItem {Value="1", Text="Search Input Position"},
                new SelectListItem {Value="2",Text="Missing Number" },
                new SelectListItem { Value="3",Text="Climb Staircase" }
    };
    return View(lc);
}

并在我的视图中

<div>
    @Html.DropDownListFor(model => model.drop, new SelectList(Model.ProblemList,"Value","Text"), "-- Select Problem --") 
</div>

我需要做的是将列表中的值传递给另一个视图。如果从下拉列表中选择该值,则按下按钮,它应在第二个视图中显示文本。 这是按钮

<div>
    <input type="button" value="Solutions" onclick="location.href='@Url.Action("button", "LeetCode")'"/>
</div>

按钮用于访问第二个视图的内容。

public ActionResult button(LeetCode model, string button)
{
    return View("Index");
}

1 个答案:

答案 0 :(得分:2)

您可以通过查询字符串传递所选值并选择当前值,并在第二个视图中从查询字符串中读取它。

假设下拉列表的ID是“drpdwn”,那么这应该可以正常工作

<input type="button" value="Solutions" onclick="location.href='@Url.Action("button", "LeetCode")?selectedvalue='+document.getElementById("drpdwn").value;"/> 

编辑#1

创建一个JS函数,它接受基本URL并根据不同的条件重定向。

<input type="button" value="Solutions" onclick="redir('@Url.Action("button", "LeetCode")'"/> 

function redir(baseUrl){
    // some logic
    location.href=baseUrl+'?selectedvalue='+document.getElementById("drpdwn").value;
}