簡體   English   中英

剃刀視圖未將輸入發送到控制器?

[英]Razor view not sending input to controller?

我正在使用此帖子表格為我的視圖使用剃刀文件:

@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中進行開發

指定控制器時,請刪除文本“ Controller”。 更改為

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

從第二個參數“ MyEventController”中刪除單詞“ Controller”。 因此它應該是“ MyEvent”。

此外,我將創建一個模型(MVC中的M),並在發布表單時,而不是接收FormCollection,而是接收一個不錯的模型。 ASP MVC將為您進行綁定。

另外,正如其他人指出的那樣,您可能最終希望將某些內容返回給客戶端,以指定表單提交和處理是否成功。 因此,您的操作不應返回無效。 大多數的案件時,如這個,你應該使用PRG模式,這是非常重要的是使用這種模式。

嘗試ActionResult而不是void

MSDN

將一個開始標簽寫入響應。 當用戶提交表單時,請求將通過操作方法進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM