mvc4在控制器中接收表单

时间:2013-10-26 15:51:21

标签: c# asp.net-mvc asp.net-mvc-4

我在html中有一个表单,我想将其提交给控制器

我尝试了什么

@using (Html.BeginForm("RegisterApartmentOwner", "Home", FormMethod.Post, 
                            new { enctype = "multipart/form-data" }))
                            {
    <p>
        <label>First Name</label>
        <input type="text" placeholder="Enter your first Name" name="firstName" />
        <span class="errorMessage"></span>
    </p>
    <p>
        <label>Last Name</label>
        <input type="text" placeholder="Enter your last Name" />
        <span class="errorMessage"></span>
    </p>
    <p>
        <label>Password</label>
        <input type="text" placeholder="Enter your password" name="Password"/>
        <span class="errorMessage"></span>
    </p>
    <p>
        <label>Password Again</label>
        <input type="text" placeholder="Enter your password again" name="Password2"/>
        <span class="errorMessage"></span>
    </p>
    <p>
        <label>Mobile Number</label>
        <input type="text" placeholder="Enter your mobile number" />
        <span class="errorMessage"></span>
    </p>
    <p>
        <input type="submit" value="Register"  class="submit"/>
    </p>
    }
</div>

并且在控制器中我收到了此功能中的提交

public String RegisterTenant() {
            return "done";
        }

我可以看到done消息,但是,我想收到我在表单中使用的输入值,请问怎么样?

我只想知道在控制器中接收表单的内容

1 个答案:

答案 0 :(得分:5)

您可以接受formcollection(如:FormCollection collection)作为帖子操作中的参数,或者更好的是,创建视图模型,将其发送到视图并将其发布到控制器。您必须将其设置为http post post course的参数。

示例:

[HttpPost]
public String RegisterTenant(FormCollection collection) {
        // give all your html elements you want to read values out of an Id, like 'Password'
        var password = collection["Password"];
        // do something with your data
        return "done";
    }

或(更好!):

查看型号:

public class HomeViewModel
{
    [Required]
    public string UserName {get;set;}
}

查看(在上面):

@model Namespace.HomeViewModel

查看(在您的表单中):

@Html.TextBoxFor(m => m.UserName)

控制器:

[HttpPost]
public String RegisterTenant(HomeViewModel model)
{
    var userName = model.UserName;
    // do something
}

但是你应该对MVC做一些调查:观点,模型&amp;控制器和他们做什么。最好创建一个类型安全的视图模型并使用它。