2012-01-06 27 views
10

Pracuję nad aplikacją, w której muszę przekazać wartość nazwy użytkownika z kontrolera do widoku. próbowałem ViewData podaną w http://msdn.microsoft.com/en-us/library/system.web.mvc.viewdatadictionary.aspxJak przekazywać wartości z kontrolera do widoku w asp.net?

mojego kodu w kontrolerze jest

public ActionResult Index(string UserName, string Password) 
{ 
     ViewData["UserName"] = UserName; 
     return View(); 
} 

gdzie nazwa użytkownika i hasło są uzyskane z innej formie.

I kod w widoku jest

@{ 
    ViewBag.Title = "Index"; 
} 
<h2>Index</h2> 
<%= ViewData["UserName"] %> 

Ale kiedy uruchomić ten kod, na wyświetlaczu pojawi <% = ViewData [ "username"]%> zamiast rzeczywistej nazwy użytkownika powiedzenia, na przykład „XYZ ".

Jak wyświetlić rzeczywistą nazwę użytkownika?

Z góry dziękuję bardzo za pomoc.

Odpowiedz

12

Używasz składni maszynki tutaj, ale starasz się mieszać ze starszymi składni ASP.NET, korzystania

@ViewData["UserName"] 

zamiast

Ponadto, zwykle nie użyłby torbę widok przekazać dane do widoku. Standardową praktyką jest utworzenie modelu (klasa standardowa) z wszystkimi bitami danych, które chce wyświetlić (strona), a następnie przekazanie tego modelu do widoku z kontrolera (Return View (myModel);)

Aby to zrobić trzeba także zadeklarować typ modelu używasz w widoku

@model Full.Namespace.To.Your.MyModel 

czytać http://msdn.microsoft.com/en-us/gg618479 za podstawowy samouczek modeli MVC

6

wydaje się, że używasz maszynki Zobacz Silnik zamiast internecie Forms View Engine. Spróbuj zamiast tego:

@{ 
    ViewBag.Title = "Index"; 
} 
<h2>Index</h2> 
@ViewData["UserName"] 
0

"ViewBag" to ładowanie z MVC2. Rozwój MVC3 powinien używać silnie typowanego "ViewModel's.

Powiązane problemy