如何从javascript调用htmlhelper

时间:2014-05-27 11:20:22

标签: javascript html asp.net-mvc asp.net-mvc-3 razor

是否可以从javascript调用htmlhelper?

我试图将它包含在我的javascript变量中,但是剃刀视图只渲染实际文本而不是dropbox。

   var statusSelector = ['<label for="selectList">Status</label>',
                        '<input id="selectstatusList" name="selectList" type="hidden">',
                        '&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp',
                         '@Html.StatusDropDownListFor(model => model.Reportstatus)',
                        '<div class="clear"></div>'].join('\n'); 

这就是所有渲染....

   @Html.StatusDropDownListFor(model => model.Reportstatus)

要将其置于上下文中,我只希望根据另一个下拉列表中的用户选择显示此下拉列表(这将是此StatusDropdown之前工作流程中的上一步) 请注意,这是一个使用剃刀视图的mvc 3应用程序。

1 个答案:

答案 0 :(得分:1)

不,不是。在操作方法中调用return View();时,视图引擎会解析视图并生成html。当遇到@Html.Helper方法时,该方法会生成特定的html(例如输入,选择等)。它无法将脚本标记中的字符串识别为@Html.Helper(如果确实如此,则会将其标记为当时)。

Javascript没有关于HtmlHelper的概念。 HtmlHelpers在服务器端生成html,Javascript在客户端运行。

我建议您在隐藏元素中创建下拉列表,并使用javascript根据其他下拉列表中的选择显示它。或者,您可以使用AJAX返回下拉列表的html。