将字符串列表传递到 mvc 3 剃刀中的控制器

Pass list of string into Controller in mvc 3 Razor

本文关键字:剃刀 控制器 mvc 字符串 列表      更新时间:2023-09-26


我在 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"

我试图搜索谷歌和堆栈溢出,但仍然没有帮助
请帮助我,提前
感谢

在您的情况下,您需要接收一个 HiddenField 的单个字符串并将其拆分到服务器端。

如果需要接收列表,则需要构建一组名称如下的控件:

<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

在 JavaScript 控制台中,尝试以下操作:

"0" == false

有帮助,嗯?我怀疑MVC在扮演愚蠢的乞丐,假设这就是你的意思。首先,尝试在Firebug的网络面板中检查POST请求(或您使用的任何Web调试(,然后我建议您尝试使用纯数字而不是字符串。