MVC4 Ajax表单URL

Dav*_*ell 6 asp.net-mvc asp.net-mvc-4

有没有办法设置 AJAX表单的URL ?我正在寻找使用Ajax.BeginForm()语法的答案,以便我可以利用Microsoft的模型构造巫术,而无需自己重新解析url字符串.

有一种部分视图,foo.com.au/getFoo其上有一个ajax形式.ajax表单将发布到Foo控制器(默认),getFoo动作.

当我从外部网站(bar.com.au)呼叫这个时,我希望它回发给foo.com.au/getFoo.而是发布到bar.com.au/getFoo.有没有办法告诉Ajax表单发布到完整的URL而不是相对路径?

动机
对于那些怀疑hax0rz或其他犯规游戏的人,我已经构建了一个集成在多个客户端站点的小部件.我现在正在为这个小部件构建一个身份验证插件.小部件不会将它们重定向到我的网站进行身份验证,因此我希望它使用用户名/密码输入表单的结果发回我的域.

Ken*_*eth 2

您需要通过 Ajax-options 传递它,而不是在 BeginForm 的重载中提供它:

@using (Ajax.BeginForm(
    new AjaxOptions
    {
        Url = Url.Action("getFoo", "Foo", null, Request.Url.Scheme)
    }))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)