2017-04-04 109 views
1

我有一段JavaScript代碼,其中包含一個dropdownlist的定義。 我不知道如何傳遞參數,如dropdownlist的名稱。如何設置@ Html.DropDownList的名稱?

var x=1; 
var block='<div class="col-md-3">' + 
      '<div class="form-group">' + 
       '<label for="Address">Adresa '+ addressOUPIndex+' de la OUP</label><br />' + 
       '@Ajax.JavaScriptStringEncode(Html.DropDownList("addresses["+ (x- 1) + "].Address",EnumHelper.GetSelectList(typeof(EPURE.Common.Enums.AdresaOUP)), null, new { @class = "selectpicker Address"}).ToHtmlString())' + 
                     ^^^^^^^^^^^ 
      '</div>' + 
'</div>' + 

我收到如下錯誤:

The name 'x' does not exist in the current context

+0

'Html.DropDownList()'是剃刀代碼及其分析了其發送之前在服務器上到視圖。 'x'是一個JavaScript變量,在那個時候不存在 –

+0

感謝提供信息,@StephenMuecke。我該如何解決這個問題? –

+1

我假設你試圖動態添加收集項目? (在這種情況下,請參閱一些選項[這裏](http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308)) –

回答

1

嘗試更換您的字符串:

var replacedVariable = 1; // unique name inside your 'myString' for replace 
var myString = '@Ajax.JavaScriptStringEncode(Html.DropDownList("addresses[replacedVariable].Address",EnumHelper.GetSelectList(typeof(EPURE.Common.Enums.AdresaOUP)), null, new { @class = "selectpicker Address"}).ToHtmlString())'; 
myString = myString.replace('replacedVariable', replacedVariable); // addresses[1].Address 

var block='<div class="col-md-3">' + 
     '<div class="form-group">' + 
      '<label for="Address">Adresa '+ addressOUPIndex+' de la OUP</label><br />' + 
      myString +             
     '</div>' + 
'</div>'