我的控制器中有一个字符串列表,显示在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");
}
答案 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;
}