有没有办法让 Ajax.BeginForm 输出一个绝对 url 而不仅仅是一个相对的?
我试图让一些表单在另一台服务器上托管的站点上与 CORS 一起使用。目前,我正在 ajax 选项中使用 jquery onsuccess 解析表单。
我不是任何关于编写扩展的教程的指针,因为它会很方便
有没有办法让 Ajax.BeginForm 输出一个绝对 url 而不仅仅是一个相对的?
我试图让一些表单在另一台服务器上托管的站点上与 CORS 一起使用。目前,我正在 ajax 选项中使用 jquery onsuccess 解析表单。
我不是任何关于编写扩展的教程的指针,因为它会很方便
有没有办法让 Ajax.BeginForm 输出一个绝对 url 而不仅仅是一个相对的?
是的,但是您需要在其中指定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) }))
{
...
}
这里:
@using (Ajax.BeginForm(new AjaxOptions {
Url = "http://www.domain.com/whatever" ,
Confirm = "...",
// and other options...
}))
{
// html controls or helpers here...
}