如何将复杂的参数传递给控制器​​?

时间:2013-07-15 13:58:37

标签: asp.net-mvc-3 nhibernate asp.net-mvc-4

这是我在ASP.NET MVC上的第二周

基本上我有一个名为T_Users的模型,在视图页面中我创建了一个用于在数据库中创建新记录的文本框,下面是代码:

<th scope="row" class="spec">Row</th>
<th scope="col" class ="nobg">@Html.TextBoxFor(A => A.Username)</th>
<th scope="col" class ="nobg">@Html.PasswordFor(p => p.Password)</th>
...            

它背后的控制器怎样才能获得价值?显然传递/ xx / xx / ID不是一种有效的方法。

2 个答案:

答案 0 :(得分:1)

如果您将表单发布到Action,则根据该表单的方法,您将获得集合中的值。 例如:

HTML

<form action="SubmitAction" method="POST">
    <...>
    <th scope="row" class="spec">Row</th>
    <th scope="col" class ="nobg">@Html.TextBoxFor(A => A.Username)</th>
    <th scope="col" class ="nobg">@Html.PasswordFor(p => p.Password)</th>
    <.../>

背后的代码

 [HttpPost]
            public ActionResult SubmitAction(UserInfo user)
            {
                var value1 = user.Username;
                var value2 = user.Password;
                ...

                ... return something ...
            }

和模型

class UserInfo
{
    public string Username { get; set; }
    public string Password{ get; set; }
}

答案 1 :(得分:0)

创建一个模型类来表示您的记录:

class UserInfo
{
    public string Username { get; set; }
    public string Password{ get; set; }
}

现在创建一个HttpPost操作Save,它接受您的UserInfo类作为参数:

[HttpPost]
public ActionResult Save(Userinfo info)
{
    //info should contain your username and password
}

确保您的类中的属性名称与您的html格式中的名称完全匹配。