2013-03-19 115 views
0

我有一個相當簡單的問題。這是我第一次這樣做,所以請和我一起裸照。ASP.NET MVC 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; } 

} 

所以basicly我想達到的目標是,當u按一下按鈕,這兩個變量的電子郵件和密碼設置,並提供另一種方法來使用。我不確定我應該返回什麼(目標是保持相同的觀點)。我試圖重定向到我目前在(索引視圖)相同的視圖,但它似乎是導致回發和變量丟失。

回答

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") 
+0

是的,我知道,但我只是想,如果有可能以某種方式讓登記後,用戶登錄無需重新引導他另一個視圖(保持登錄和註冊在同一視圖中)。我還沒有爲製作數據庫而苦惱,只是用一些字符串變量進行測試。 – Andreas 2013-03-19 19:46:41

+0

讓我看看我是否明白你的意思。註冊和登錄是兩回事。當您使用MVC創建互聯網應用程序時,您是否看過帳戶cotroller?您有兩種不同視圖的操作,他們執行類似的操作,然後將用戶重定向到索引頁面。你可以用ajax做什麼,是一個異步的過程,然後註冊/記錄用戶。 – 2013-03-19 23:07:38

0

試試這個

return View("Index",c) 

,將工作