我有两个 Asp.Net MVC网站。第一个位于根域domain.com内,第二个是子域sub.domain.com。
在根域内一切正常,但我在向子域上的控制器提交表单时遇到问题。无论我尝试发送什么,似乎都无法到达控制器。
这可能看起来很奇怪,但是当我尝试在调试模式下本地启动应用程序时,不会发生此问题。(本地不是子域,只是普通的本地主机(。
仅出于测试目的,我构建了一个简单的模型:
public class TestModel
{
public string test_text { get; set; }
}
这是CSHTML部分视图:
@using (Html.BeginForm("TryModel", "Home", new { }, FormMethod.Post, new { }))
{
<input type="text" name="test_text" />
<button type="submit">Test</button>
}
即使使用这种简单的配置,在我的本地副本上我也没有问题,但是一旦我在远程计算机上启动应用程序,发布的数据始终为空。
您认为可能是什么问题?
编辑
这是控制器方法
[HttpGet]
public ActionResult TryModel()
{
return View();
}
[HttpPost]
public ActionResult TryModel(TestModel model)
{
// code removed
return View(model);
}
是的,正确调用了该操作。甚至 Request.Form 也是空的。
Html.BeginForm 只需要 4 个参数,
参数:字符串操作名称、字符串控制器名称、表单方法方法、对象 html 属性
您应该更改您的参数 从:
@using (Html.BeginForm("TryModel", "Home", new { }, FormMethod.Post, new { }))
自:
@using (Html.BeginForm("TryModel", "Home", FormMethod.Post, new { }))
我希望它会有所帮助。