2017-04-04 5 views
1

私はdropdownlistの定義を含むJavascriptでコードを持っています。 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>'