0

私の ASP.NET MVC アプリケーションでは、Register メソッドで 2 つの変数を更新するだけです。

コントローラーの登録メソッドは次のようになります (独自のビューを持っていないため、この場合に何を返すかわかりません):

[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; }

}

ボタンをクリックすると、2 つの変数 email と password が設定され、別の方法で使用できるようになります。何を返す必要があるのか​​ わかりません(目標は同じビューにとどまることです)。現在いるのと同じビュー (インデックス ビュー) にリダイレクトしようとしましたが、ポストバックが発生し、変数が失われているようです。

4

2 に答える 2

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")
于 2013-03-19T19:32:53.883 に答える