如何加载partialview并将其存储在javascript中使用的变量中?

时间:2016-02-10 19:12:23

标签: javascript asp.net-mvc partial-views tagbuilder mvchtmlstring

我有一个使用模型创建下拉列表的prtialview。 在我的主视图中,我创建了partialview html字符串,以便稍后在javascript函数中使用它。

查看:

@model SomeViewModel
@{ 
var devicesDropDown = @Html.Partial("_DropDown", (SelectList)(Model.DeviceTypes));
var devicesHtmlDropDown = MvcHtmlString.Create(devicesDropDown.ToString());
}

但是当我想以这种方式在javascript中使用它时,它就像一个未连接的字符串,导致javascript函数出错。

Js在页面的底部运行:

<script type="text/javascript">
   function format(d) {
       var ddl = '@( devicesHtmlDropDown)';
       return ddl;
   }
</script>

这是字符串在运行时的样子:

 var ddl = '<select class="form-control input" id="SelectedValue"  name="SelectedValue" style="width: 100%">
<option selected="selected" value="456413">1</option>
<option value="564655465">2</option>
</select>
';

我应该如何格式化此字符串以像静态html对象一样呈现。 如何检索此下拉列表的选定值以发布到操作? 我应该使用TagBuilder吗?

1 个答案:

答案 0 :(得分:4)

我的建议是使用脚本块来保存模板。您可以通过ID轻松地从那里检索HTML。脚本块永远不会直接呈现,因此在您提取并应用HTML之前,它是安全隐藏的。

var template = $('#ddlTemplate').html();

然后,你可以这样访问这个HTML(使用jQuery)

{{1}}