繁体   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