将jQuery值传递给MVC 3 Razor视图html帮助器

时间:2011-05-17 18:30:21

标签: jquery asp.net-mvc-3

我在MVC Razor页面中嵌入了以下jQuery函数:

<script type="text/javascript">
    $(document).ready(function () {
        $("input[name=MultiListsetting]").change(function () {
            var valueString = "";
            $("input[name=MultiListsetting]:checked").each(
            function () {
                valueString += this.id + ","
            }
            );
            var MultiValueListResult = valueString.slice(0, -1);
            alert(MultiValueListResult);
        });
    });
</script>

这将根据一系列复选框的id属性输出一个字符串。当复选框值更改时,将重建字符串。因此,通过3个复选框,全部选中,函数将输出:“checkboxID1,checkboxID2,checkboxID3”,直到更改为止。这是我们的数据库服务器为这组复选框存储值的方式。我现在需要完成的是将此函数输出的字符串传递给同一Razor页面上的隐藏HTML元素。

@Html.Hidden("SetViewModel[" + i + "].Value", [string output here])

jQuery会允许这一举动吗?我可以以某种方式采取“MultiValueListResult”并将其插入隐藏控件吗?我还在研究。

1 个答案:

答案 0 :(得分:1)

你在模板中混合了执行时间;您的HTML隐藏字段将在执行jQuery之前很久就会出现在页面上。你需要做的只是做你隐藏的领域:

@Html.HiddenFor(x => x.MyPropertyName);

然后在你的回调中,只需更新它的值:

$('#myElement').change(function()
{
    $('#MyPropertName').val(MultiValueListResult); 
});

当表单被回发后,所选集合的值将包含在隐藏值中。