我正在使用剃刀文件查看我的观点:
@using (Html.BeginForm("Save", "MyEventController", FormMethod.Post))
{
<md-input-container class="md-block" flex-gt-xs="">
<label>Title</label>
<input type="text" name="title" />
</md-input-container>
<md-input-container class="md-block">
<label>Address</label>
<input type="text" name="address" id="txtAddress">
</md-input-container>
<md-button class="md-raised">
<input type="submit" value="Save" />
</md-button>
}
我想将我的输入发送到Controllers / EventController.cs中的控制器,如下所示:
public class MyEventController : Controller
{
[HttpPost]
public void Save(FormCollection collection)
{
InputEvent y = new InputEvent();
y.title = collection["title"];
y.address = collection["address"];
}
}
似乎永远不会调用Save()方法。我如何提交Save()?
我在Visual Studio 2015中开发
答案 0 :(得分:3)
指定控制器时删除文本“Controller”。将其更改为,
Html.BeginForm("Save", "MyEvent", FormMethod.Post)
答案 1 :(得分:1)
从第二个参数“MyEventController”中删除“Controller”一词。所以它应该是“MyEvent”。
此外,我将创建一个模型(来自MVC的M),当发布表单时,它将接收一个漂亮的模型,而不是接收FormCollection。 ASP MVC将为您处理绑定。
此外,正如其他人所指出的那样,您可能希望最终将某些内容返回给客户端,以指定表单提交和处理是否成功。因此,您的行动不应该返回无效。大多数情况下,在这种情况下,你应该使用PRG模式 - 使用这种模式非常重要。
答案 2 :(得分:0)