我有mvc 3 Razor中的字符串传递列表到控制器的问题
我使用Jquery来设置值
但是在服务器端,第一个值总是假的,我不知道为什么:(
我的代码在这里:
类:
public class ListFieldInfo
{
public List<string> FieldFilters { get; set; }
}
查看:
@using (Html.BeginForm("Export", "Books", FormMethod.Post,new { @id = "exportForm", hidden = true }))
{
<fieldset>
@Html.HiddenFor(m => m.status_info.FieldFilters, new { @id = "status_filters" })
</fieldset>
}
使用Javascript:
$('#status_filters').add("0");
$('#status_filters').add("1");
控制器中的调试:
FieldFilters[0] = "false"// I don't know why
FieldFilters[1] = "1"
我试图搜索谷歌和stackoverflow但仍然没有帮助 请帮助我,提前谢谢你
答案 0 :(得分:2)
在您的情况下,您需要为一个HiddenField接收单个字符串并将其拆分在服务器端。
如果您需要接收List,则需要使用以下名称构建一组控件:
<input type="hidden" name="model.status_info.FieldFilters" />
<input type="hidden" name="model.status_info.FieldFilters" />
etc...
以下是来自Phill Haak的精彩文章:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
答案 1 :(得分:0)
在javascript控制台中,尝试以下操作:
"0" == false
有帮助,是吗?我怀疑MVC正在扮演愚蠢的乞丐,假设这就是你的意思。首先,尝试在Firebug的网络面板中检查POST请求(或者您使用的任何Web调试),然后我建议您尝试使用普通数字而不是字符串。