For*_*ugh 3 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());
}
Run Code Online (Sandbox Code Playgroud)
但是,当我想以这种方式在javascript中使用它时,它就像是导致javascript函数出错的未连接字符串。
js函数位于页面的底部:
<script type="text/javascript">
function format(d) {
var ddl = '@( devicesHtmlDropDown)';
return ddl;
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是运行时字符串的样子:
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>
';
Run Code Online (Sandbox Code Playgroud)
我应该如何格式化此字符串以使其可以像静态html对象一样呈现。以及如何检索此下拉菜单的选定值以发布到操作?我应该使用TagBuilder吗?
我的建议是使用脚本块保存您的模板。您可以通过ID轻松地从此处检索HTML。脚本块永远不会直接呈现,因此在您提取并应用HTML之前,它将被安全地隐藏。
<script id="ddlTemplate" type="text/html">
@Html.Partial("_DropDown", (SelectList)(Model.DeviceTypes))
</script>
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样(使用jQuery)访问此HTML
var template = $('#ddlTemplate').html();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1160 次 |
| 最近记录: |