ASP.NET MVC ActionResult方法混乱

时间:2013-03-19 18:32:27

标签: asp.net-mvc methods return-value actionresult

我有一个相当简单的问题。这是我第一次这样做,所以请光临我。

在我的ASP.NET MVC应用程序中,我想在Register方法中更新两个变量。

我的控制器中的注册方法看起来像这样(它没有自己的视图,所以我不知道在这种情况下返回什么):

[HttpPost]
public ActionResult Register(Container c)
{

String email = c.register.Email.ToString();
String password = c.register.Password.ToString();
return view();
}

我的索引视图如下所示;

@model VoterMvcTest.Models.Container    

@using(Html.BeginForm("Register", "Default1")) 
{
@Html.LabelFor(o => o.register.Email)
@Html.EditorFor(o => o.register.Email)
@Html.LabelFor(o => o.register.Password)
@Html.EditorFor(o => o.register.Password)
<input class="button" type="submit" value="Register" />
}

我的模型看起来像这样;

public class Container
{
    public Login login { get; set; }
    public Register register { get; set; }

}

public class Login
{
    public string Email { get; set; }
    public string Password { get; set; }
}

public class Register
{
    public string Email { get; set; }
    public string Password { get; set; }

}

基本上我想要实现的是当你点击按钮时,设置了两个变量email和password,并且可以在另一个方法中使用。我不确定应该归还什么(目标是保持同样的观点)。我试图重定向到我当前所处的相同视图(索引视图),但似乎这会导致回发并且变量丢失。

2 个答案:

答案 0 :(得分:0)

ASP.NET MVC does not have ViewState as you would have when using WebForms. So if you 
perform a post and do not persist the data in either a database or a temporary memory 
(session object for instance) you'll lose that data as soon as the request has finished.
If you do some kind of validation and determine that the user was well registered you
could redirect him to another view using: 

    return RedirectToAction("Index")

答案 1 :(得分:0)

试试这个

return View("Index",c)

它会起作用

相关问题