javascript - 如何加载局部 View 并将其存储在要在 javascript 中使用的变量中?

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

我有一个使用模型创建下拉列表的 prtialview。 在我的主视图中,我创建了部分 View 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 吗?

最佳答案

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

<script id="ddlTemplate" type="text/html">
    @Html.Partial("_DropDown", (SelectList)(Model.DeviceTypes))
</script>

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

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

关于javascript - 如何加载局部 View 并将其存储在要在 javascript 中使用的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35323926/

相关文章:

javascript - `arguments` 增加了运行时间(神秘地)

javascript - Canvas :动画绘制圆时,如何避免线段之间出现间隙?

javascript - `display:none` 仍在留下破坏布局的边框

asp.net-mvc - ASP.NET MVC2 - 是否可以从局部 View 访问父 View 的模型数据?

c# - 从 jquery 渲染局部 View 不工作

javascript - 使用 php var 确认删除

javascript - 单独的 js 文件 utf-8 在 ASP.NET MVC Razor 中不起作用

c# - Web API 中的异常处理

javascript - 在 ASP.Net web 表单/MVC 中动态加载和添加字段

asp.net-mvc - 从局部 View 添加对 html head 标签的脚本引用