好的,我正在尝试使用一个列表框,用户可以在其中添加可变数量的值,然后在集合中提交这些值。
这是我的模特:
public sealed class TestModel
{
public IList<string> MyStrings { get; set; }
}
这是我的控制器:
public class TestController : Controller
{
//
// GET: /Test/
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult SubmitTest(TestModel testModel)
{
return Index();
}
}
我的观点:
@model WebApplication4.Models.TestModel
@{
ViewBag.Title = "Test Page";
}
<br />
@using (Html.BeginForm("SubmitTest", "Test", FormMethod.Post))
{
<input type="text" id="testTestbox" />
<input id="testButton" type="button" value="Add" /><br />
@Html.ListBoxFor(x => x.MyStrings, new List<SelectListItem>(), new { id = "testListbox", style = "width:100px;" })
<input type="submit" value="Submit" />
}
@section Scripts{
<script>
$("#testButton").click(function () {
var value = $("#testTestbox").val();
$('<option value="' + value + '">' + value + '</option>').appendTo("#testListbox");
});
</script>
}
但是,提交时,MyStrings属性始终为空。我在某个地方犯了一个错误,可以通过一个小修改来解决,或者我想做的就是不可能?
由于
答案 0 :(得分:0)
将值添加到列表框后,从列表框中选择值,然后再将其提交给控制器。
我认为您提交表单时没有从列表框中选择值...
答案 1 :(得分:0)
使用此..
$("<option value='"+ value + "' selected='selected'>" + value +"</option>").appendTo("#testListbox");
selected ='selected'将选择用户输入的选项并绑定到模型属性“MyStrings”