2016-03-19 68 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模式 - 使用此模式非常重要。

相關問題