所以这是背景: 我在运行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提交表单。
任何有助于我指向正确方向的帮助都将受到赞赏。
答案 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东西:)