帮助AJAX不使用基于ASPX的CMS

时间:2011-03-09 15:57:41

标签: asp.net asp.net-mvc ajax asp.net-mvc-3 orchardcms

所以这是背景: 我在运行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阻止,因此代码将不会被处理。

我在Orchard论坛上问过这个问题没有运气。

这似乎是权限问题,但我不知道如何允许直接访问此form_pc.aspx文件或如何允许Ajax提交表单。

任何有助于我指向正确方向的帮助都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

而不是发布到Orchard内部的aspx页面,你应该发布到你放在其中一个模块中的Controller。通过使用MVC帮助程序,您可以在控制器中找到操作的URL,并以这种方式执行ajax调用。我知道它的工作原理就像我在我为学习Orchard而创建的模块中所做的那样。

答案 1 :(得分:0)

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

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

乍一看,它看起来有些不对劲,可以轻松实现,不需要任何忍者风格的混合mvc和webforms东西:)