0

所以背景是这样的:我在一个运行 IIS 7 和 .NET 4 的 Windows 机器中安装了 Orchard CMS。一切正常。

有一个联系表格,非常简单,唯一的区别是提交是通过 Ajax 完成的。

Ajax 脚本非常简单,并且在 CMS 环境之外进行测试时运行良好

    var dataString = 'fName='+ fName + '&fTitle='+ fTitle + '&fCompany='+ fCompany + '&fEmail=' + fEmail + '&fPhone=' + fPhone + '&fOptout=' + fOptout;  
//alert (dataString);return false;  
$.ajax({  
  type: "POST",  
  url: "/form_pc_aspx",  
  data: dataString,  
  //changed to error for testing purposes.  test is error
  success: function() {  
    $('.error').hide();
    $('#calc-blind').hide();  
    $('#calcForm').fadeIn();  
  }  
});  
return false;  

问题是一旦页面被放置在 CMS 中,/form_pc.aspx 就会被 404 阻塞,因此代码将不会被处理。

我在果园论坛上问过这个问题,但没有运气。

好像是权限的问题,但是不知道怎么允许直接访问这个form_pc.aspx文件,也不知道怎么允许ajax提交表单。

任何为我指明正确方向的帮助将不胜感激。

4

2 回答 2

1

与其发布到 Orchard 内的 aspx 页面,不如发布到放置在其中一个模块中的控制器。通过使用 MVC 帮助程序,您可以在控制器中找到您的操作的 url,并以这种方式进行 ajax 调用。我知道它是有效的,因为这就是我在我为学习 Orchard 而创建的模块之一中所做的事情。

于 2011-03-10T18:45:26.910 回答
0

Orchard CMS 基于ASP.NET MVC 3构建,因此默认情况下,没有以 .aspx 结尾的 URL。您不能只放置 WebForms .aspx 文件并使其工作。我建议您阅读这篇关于将 ASP.NET MVC 与 WebForms 混合的文章。Orchard CMS 只是一个 ASP.NET MVC 应用程序(虽然很漂亮),所以这肯定是可行的。

您能否提供有关您的设置的更多详细信息以及您想要实现的目标?这将帮助我为您提供更具体的解决方案。

乍一看,似乎有什么问题,并且可以在没有任何 ninja-style-mixing-mvc-and-webforms 东西的情况下轻松实现:)

于 2011-03-10T01:45:00.033 回答