为@ Html.Partial()混合剃刀和javascript代码

时间:2014-07-14 19:56:43

标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor

任何人都可以为我提供如何在MVC中向页面动态添加一些代码的解决方案。

我这样做但是在这段代码中,页面无法识别索引javascript变量,因为它没有识别索引javascript变量。

$(document).on('click', '.add-option', function () {           
  var index = $("div.ques-options").size();
  if (index < 5) {
    $('.MainContainer').append('@Html.Partial("_Options", index)')
  }
});

2 个答案:

答案 0 :(得分:2)

最好使用jQuery load()或通过控制器中的ajax动作调用,这种方法在那里描述ASP.NET MVC rendering partial view with jQuery ajax

答案 1 :(得分:2)

正如谢尔盖·博伊科的回答中所提到的,不推荐使用这种方法,因为您可以使用ajax来让服务器返回局部视图。

无论如何,混合javascript和Razor要求你用任何代码块包围Razor调用

@{ ... } or @if, etc.

并将代码本身放在转义序列中

@: or the <text> tag

所以,知道这一点,你可以做类似

的事情
<script>
    var partialView = '';
    @{
        <text>
            partialView = '@Html.Partial("_Options", index)';
        </text>
     }

     $(document).on('click', '.add-option', function () {           
         var index = $("div.ques-options").size();
         if (index < 5) {
             $('.MainContainer').append(partialView)
      }});
</script>

退房 Mix Razor and Javascript codeUsing Razor within JavaScript