我需要找到一种方法来显示选定下拉值的数据。到目前为止,代码是这样的-默认寄存器x的数据将显示在页面加载的“索引”视图中,从下拉列表中选择新寄存器后,需要在相同的“索引”视图中替换寄存器y数据。当我调试代码时,我能够在display()下的viewlist中看到填充的新数据,但这些数据不会传输到主视图。此外,@model.store、@model.reg值不会拾取从控制器重定向操作分配的新值。请建议使用所选注册表的信息重新填充视图的方法。
控制器
public class AppHealthController : Controller
{
dynamic ViewList = new ExpandoObject();
public ActionResult Index()
{
ViewList.store = "0100";
ViewList.reg = "001";
ViewList.RegList = GetAllRegisterList(A, B);
ViewList.RegInfo = ReadAPIinfo(C, D);
return View("Index", ViewList);
}
[HttpPost]
public ActionResult Display(string selectRegister)
{
ViewList.store = "0001";
ViewList.reg = selectRegister.Substring(8,3);
ViewList.RegInfo = ReadAPIinfo(C, selectRegister);
return RedirectToAction("Index", ViewList);
}
}
看法
@model dynamic
@{ViewBag.Title = "Index";}
<script>
$("body").on("change", "#selectRegister", function () {
$("#selectRegister").val($(this).find("option:selected").text());
});
</script>
<body>
<table style="width:100%" class="table1">
<tr>
<td><b>StoreNumber :</b>@Model.store</td>
<td><b>RegisterNumber :</b>@Model.reg</td>
<td>
<b>Register List</b>
@using (Html.BeginForm("Display", "AppHealth", FormMethod.Post))
{
<select id="selectRegister" name="selectRegister" onchange="this.form.submit();">
@foreach (RegisterList item in Model.RegList.Result)
{
<option>@Html.DisplayFor(x => @item.RegisterNo)</option>
}
</select>
}
</td>
</tr>
</table>
<table id="'tblHealth"><tbody>Model.RegInfo.Result[0]</tbody></table>
暂无答案!
目前还没有任何答案,快来回答吧!