Mam, View - _Edit
który mieszka w News M/V/C
.
Używam ponownie V/M
przez CategoryController
jako:
return PartialView("/Views/News/_Edit.cshtml", model);
Jak z poziomu okna View - _Edit
mogę ostrzec nazwę kontrolera?
Kiedy ja:
alert('@ViewContext. RouteData.Values["controller"].ToString()');
Wartość to: News
Jednak adres URL to:/Category/foobar
Czy istnieje sposób, aby uzyskać wartość 'Category'
ostrzeżenia? dzięki
asp.net-mvc-3
Valamas
źródło
źródło
NewsController
?method
, które jest ładowaniepartialview
i cocontroller
, żemethod
istnieje w.Odpowiedzi:
Przedstawiłem to w mojej częściowej opinii:
w takiej samej sytuacji, którą opisujesz, i pokazuje kontroler opisany w adresie URL (Kategoria dla Ciebie, Produkt dla mnie), zamiast rzeczywistej lokalizacji częściowego widoku.
Zamiast tego użyj tego alertu:
źródło
@ViewContext.RouteData.Values["controller"]
HttpContext.Current
.Request
jest dostępny bezpośrednio.["action"]
działa, jeśli chcesz nazwę metody akcji.Robię to w ten sposób, ale może to tylko ASP.NET MVC 4
źródło
Utwórz klasę bazową dla wszystkich kontrolerów i umieść tutaj atrybut nazwy:
Z uwagi
Przykład kontrolera
źródło
Name
ustawia się właściwość?Inny sposób uzyskania aktualnej nazwy kontrolera w widoku
źródło
Po prostu użyj:
W ten sposób otrzymasz pełną nazwę kontrolera
źródło
Nadal jesteś w kontekście swojego,
CategoryController
mimo że ładujesz plikPartialView
zViews/News
folderu.źródło
Możesz użyć dowolnego z poniższych kodów, aby uzyskać nazwę kontrolera
Jeśli używasz MVC 3, możesz użyć
źródło