2011-05-17 139 views
1

我有以下jQuery函數嵌入在MVC剃刀頁:傳遞一個jQuery值到MVC 3 Razor視圖HTML輔助

<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

你正在混合執行時間在你的模板methinks;您的HTML隱藏字段將在執行jQuery之前的很久的頁面上。你需要做的僅僅是讓你的隱藏字段什麼:

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

,然後在回調中,只需更新它的值:

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

當窗體被調回,你選擇的設定值將被包含在隱藏的值內。

+0

這絕對是這樣做的......我在隱藏控件上創建了一個「ID」屬性並以這種方式訪問​​它:$(「input [ID = MultiValueListReturn]」).val(MultiValueListResult);並且該控件似乎正在根據需要進行更新。謝謝! – ewomack 2011-05-17 18:54:44

相關問題