如何加载局部视图并将其存储在要在 javascript 中使用的变量中?
How to load a partialview and store it in a variable to be used in javascript?
我有一个使用模型创建下拉列表的 prtialview。
在我的主视图中,我创建了部分视图 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 对象一样呈现。
以及如何将此下拉列表的选定值检索到 post 以执行操作?
我应该使用 TagBuilder 吗?
我的建议是使用脚本块来保存您的模板。您可以通过 ID 从那里轻松检索 HTML。脚本块永远不会直接呈现,因此在您提取并应用 HTML.
之前,它是安全隐藏的
<script id="ddlTemplate" type="text/html">
@Html.Partial("_DropDown", (SelectList)(Model.DeviceTypes))
</script>
然后,您可以像这样访问此 HTML(使用 jQuery)
var template = $('#ddlTemplate').html();
我有一个使用模型创建下拉列表的 prtialview。 在我的主视图中,我创建了部分视图 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 对象一样呈现。 以及如何将此下拉列表的选定值检索到 post 以执行操作? 我应该使用 TagBuilder 吗?
我的建议是使用脚本块来保存您的模板。您可以通过 ID 从那里轻松检索 HTML。脚本块永远不会直接呈现,因此在您提取并应用 HTML.
之前,它是安全隐藏的<script id="ddlTemplate" type="text/html">
@Html.Partial("_DropDown", (SelectList)(Model.DeviceTypes))
</script>
然后,您可以像这样访问此 HTML(使用 jQuery)
var template = $('#ddlTemplate').html();