2016-03-19 69 views
-1

我用剃刀将文件我用这篇文章形式的看法:剃须刀视图没有发送输入到控制器?

@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> 
} 

我想我的输入发送到我的控制器,控制器/ 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年

+2

尝试ActionResult而不是void。 –

回答

0

开发尝试ActionResult而不是void

MSDN

写入一个开始标记到响应。当用户提交表单时,请求将通过操作方法进行处理。

3

指定控制器时删除文本“控制器”。更改为,

Html.BeginForm("Save", "MyEvent", FormMethod.Post) 
1

从第二个参数“MyEventController”中删除单词“Controller”。所以它应该是“MyEvent”。此外,我会创建一个模型(MVC中的M),并且当表单发布时,而不是接收FormCollection,它将会收到一个好的模型。 ASP MVC将负责为你绑定。

另外,正如其他人所指出的,您可能希望最终返回某些内容给客户端,以指定表单提交和处理是否成功。因此,你的行为不应该返回无效。大多数情况下,在这种情况下,您应该使用PRG模式 - 使用此模式非常重要。

相关问题