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

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

 $(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); }); });  

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

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

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

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

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

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

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

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