【发布时间】:2019-04-29 02:58:33
【问题描述】:
我想将选定的列表框项移动到另一个列表框而不重新加载整个页面。
在我的场景中,我使用整数值并希望将选定的值发送到另一个列表框,反之亦然。
谁能指导我如何做到这一点。
类代码
public class NumberClass
{
public IEnumerable<SelectListItem> leftnumbers { get; set; }
public IEnumerable<int> leftSelectednumbers { get; set; }
public IEnumerable<SelectListItem> rightnumbers { get; set; }
public IEnumerable<int> rightSelectednumbers { get; set; }
}
控制器代码
[HttpGet]
public ActionResult Index()
{
List<SelectListItem> items = new List<SelectListItem>();
for (int i = 1; i <= 20; i++)
{
SelectListItem selectList = new SelectListItem()
{
Text = i.ToString(),
Value = i.ToString()
};
items.Add(selectList);
}
NumberClass num = new NumberClass()
{
leftnumbers = items,
rightnumbers = null
};
return View(num);
}
[HttpPost]
public string Index(IEnumerable<int> selectedvalue)
{
if (selectedvalue == null)
{
return "you have not selected";
}
else
{
//
return;
}
}
索引.cshtml
@using (Html.BeginForm())
{
<div class="col-md-6" style="font-family:Arial">
@Html.ListBoxFor(m => m.leftSelectednumbers, Model.leftnumbers, new { size = 20, @class = "listBox" })
<br />
<input type="submit" value="move left" />
</div>
<div class="col-md-6" style="font-family:Arial">
@Html.ListBoxFor(m => m.leftSelectednumbers, new List<SelectListItem>(), new { size = 20, @class = "listBox" })
<br />
<input type="submit" value="move right" />
</div>
}
【问题讨论】:
-
使用 JavaScript 执行此操作会更加高效和用户友好。它可能也会更容易。你反对这样做的理由是什么?
-
@ADyson,我只是想知道它是否可以通过后端代码实现。感谢您的评论。
-
通过 Ajax.BeginForml 使用局部视图。在部分情况下,您将保持控制,并在提交后仅重新渲染部分视图
标签: c# asp.net-mvc