Seb*_*iva 2 c# asp.net asp.net-mvc
我在提交表单后尝试获取自己的viewmodel,我收到以下错误:"无法将'System.String []'类型的对象强制转换为'System.String'"
这是我的代码:
视图模式:
public class SoftwarePackages
{
public string[] PermissionsList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
ASPX
<%: Html.ListBoxFor(model => model.PermissionsList, new List<SelectListItem>(), new { size = 10 })%>
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public ActionResult Index(SoftwarePackages softwarePackages)
{
code...code...code
}
Run Code Online (Sandbox Code Playgroud)
问题是什么?
谢谢
zurdoIL
以下工作对我来说很好:
模型:
public class SoftwarePackages
{
public string[] PermissionsList { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new SoftwarePackages
{
Items = new SelectList(new[]
{
new SelectListItem { Value = "1", Text = "item 1" },
new SelectListItem { Value = "2", Text = "item 2" },
new SelectListItem { Value = "3", Text = "item 3" },
}, "Value", "Text")
};
return View(model);
}
[HttpPost]
public ActionResult Index(SoftwarePackages softwarePackages)
{
// do something with softwarePackages.PermissionsList
...
}
}
Run Code Online (Sandbox Code Playgroud)
视图:
<% using (Html.BeginForm()) { %>
<%: Html.ListBoxFor(model => model.PermissionsList, Model.Items, new { size = 10 })%>
<input type="submit" value="OK" />
<% } %>
Run Code Online (Sandbox Code Playgroud)