Próbuję przeprowadzić migrację istniejącej ASP.Aplikacja NET Webforms 3.5 w aplikację ASP.NET MVC 3. Oznacza to, że próbuję przekonwertować istniejące strony .aspx za pomocą kontrolek internetowych i kodu szyfrowego odpowiednio z logiką kontrolera i widokami brzytwy. W tej chwili skupiam się na stronie wzorcowej (aby uzyskać analogowy layout.cshtml dla wszystkich innych widoków brzytwy). Na przykład zastąpiłem elementy sterujące, takie jak asp: Menu, asp: LoginView z częściowymi widokami i @ Html.Action, aby wywołać akcję kontrolera, uruchomić trochę kodu, który był w kodzie źródłowym tej strony głównej i zwrócić ten częściowy widok.
Ale teraz gubię się z wieloma kontrolkami siecistrony głównej, które zostały ustawione / widoczne, w zależności od kodu za nimi. Na przykład są dwa asp: panele na stronie wzorcowej, które zostały włączone / widoczne w zależności od odwiedzanej strony. Problem polega na tym, że w widokach maszynki do golenia nie mam kontrolek internetowych, aw kontrolerach nie mogę ustawić atrybutów / właściwości (takich jak prywatny licznik int;). Dlatego nie wiem, jak kontynuować ...
Mam nadzieję, że masz jakieś pomysły lub doświadczenie w tej sytuacji. Zapytaj, czy brakuje jakichkolwiek informacji.
Odpowiedzi:
0 dla odpowiedzi № 1Możesz ustawić właściwości Model lub ViewData w kontrolerze, a następnie użyć ich w widoku Razor z @if
na przykład
Na kontrolerze:
public ActionResult Index()
{
ViewBag.Foo = IsThisFoo();
View();
}
W widoku:
@if (ViewBag.Foo) {
<p>This is foo</p>
}
else
{
<p>This is bar</p>
}
Uwaga: najlepszą praktyką byłoby zrobienie tego w ramach silnie typowanego Modelu widoku