【问题标题】:Is there anything like .js.erb templates in ASP.NET MVC 3?ASP.NET MVC 3 中有类似 .js.erb 模板的东西吗?
【发布时间】:2011-02-20 00:21:16
【问题描述】:

我正在向我的 MVC 3 站点添加 jQuery AJAX 功能。当我使用 rails 时,我使用 $.getScript 函数进行 AJAX 调用,然后呈现在客户端上执行的 .js.erb(例如 http://railscasts.com/episodes/229-polling-for-changes )。 MVC 3 是否有与 Javascript 视图等效的功能?

【问题讨论】:

    标签: javascript jquery ruby-on-rails asp.net-mvc-3


    【解决方案1】:

    是的

    public ActionResult AjaxMethod() {
        /* do stuff */
        return PartialView("ViewName");
    }
    

    这会将上述视图的HTML返回给调用ajax方法

    【讨论】:

      【解决方案2】:

      要返回 javascript 以直接在客户端执行,如 Rails erb.js 模板,最好的方法是从控制器方法返回一个 JavaScriptResult

      public ActionResult AjaxMethod() {
      /* do stuff */
      return JavaScript(script);
      

      }

      http://msdn.microsoft.com/en-us/library/system.web.mvc.javascriptresult.aspx

      【讨论】:

      • 但是这样不是很丑吗?控制器不应该负责生成 javascript。它应该负责从数据库中获取模型并将其传递给视图进行渲染。我喜欢 .js.erb 文件的原因是因为你在编写 javascript 时保留了 erb 的优雅和强大。
      • 同意,我对 Rails 很陌生,但返回 js.erb 文件的能力似乎非常强大,我看不出 ASP.NET MVC 中有任何直接等价物。我想理论上可以派生一个自定义 ActionResult 将 Razor 视图呈现为 JavaScriptResult 以返回给客户端?
      猜你喜欢
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 2020-04-10
      • 1970-01-01
      • 2021-08-04
      • 2012-05-31
      • 2012-11-27
      相关资源
      最近更新 更多