Ajax.BeginForm绝对url MVC CORS

时间:2013-07-31 08:22:11

标签: c# asp.net-mvc jquery asp.net-mvc-4

有没有办法让Ajax.BeginForm输出一个绝对的url而不仅仅是一个相对的url?

我正在尝试在托管在另一台服务器上的网站上使用CORS。 目前我正在使用ajax选项中的jquery onsuccess解析表单。

我不是指向编写扩展程序的教程的任何指针都很方便

2 个答案:

答案 0 :(得分:4)

  

有没有办法让Ajax.BeginForm输出绝对网址   而不只是一个亲戚?

是的,但您需要在Url中指定AjaxOptions,而不要使用带有操作和控制器名称的重载:

@using (Ajax.BeginForm(new AjaxOptions { Url = Url.Action("Foo", "Bar", null, "http") }))
{
    ...
}

Url.Action有一个重载,你可以在其中指定生成绝对URL的协议。如果你想使用与用于请求当前操作的协议相同的协议而不是硬编码,你可以使用以下内容:

@using (Ajax.BeginForm(new AjaxOptions { Url = Url.Action("Foo", "Bar", null, Request.Url.Scheme) }))
{
    ...
}

答案 1 :(得分:1)

这里:

@using (Ajax.BeginForm(new AjaxOptions { 
    Url = "http://www.domain.com/whatever" ,
    Confirm = "...",
    // and other options...
}))
{
    // html controls or helpers here...
}