【发布时间】:2015-04-28 13:42:04
【问题描述】:
我试图只刷新一个 Html.ListBox。但我不知道如何用 ASP 做到这一点。现在它将刷新整个页面。
这是我的来源: 控制器
[HttpPost]
public ActionResult KenmerkSelectie(string Kenmerken1, string Buttontype, List<string> VarFromKenmerk1)
{
if (Buttontype == "submit")
{
//Write to a database and process stuff
return this.RedirectToAction("submitForm");
}else{
ViewBag.VarFromKenmerk1 = ...;
//TODO: Must refresh the ListBox: VarFromKenmerk1;
//AND AND NOT refresh whole page;
return View("index");
}
html 视图:
@using (Html.BeginForm("KenmerkSelectie", "KenmerkSelectie", FormMethod.Post, new { id = "kenmerk1" }))
{
@Html.DropDownList("Kenmerken1",
(SelectList)ViewBag.Kenmerk,
"-- Selecteer een kenmerk--", new
{
onchange = "refreshVarFromKenmerk1();"
})
@Html.ListBox("VarFromKenmerk1", (SelectList)ViewBag.var, new { @style = "width: 252px; height: 300px" })
<input type="submit" value="submit" id="btnNext" name="ButtonType" />
}
Javascript:
<script type="text/javascript">
function refreshVarFromKenmerk1() {
document.getElementById('kenmerk1').submit();
}
</script>
是否可以在没有 Javascript 的情况下实现这一目标?或者更好的方法是如何实现这一目标?
【问题讨论】:
-
您想发送一个单独的
GET请求来填充选择列表。不要尝试在同一控制器操作中同时执行POST表单和选择列表填充。 (@beautifulcoder 在他的回答中暗示了这一点。)
标签: javascript c# asp.net razor