에 View - _Edit
사는 사람이 News M/V/C
있습니다.
V/M
via를 다음 CategoryController
과 같이 재사용합니다 .
return PartialView("/Views/News/_Edit.cshtml", model);
어떻게에서 내 View - _Edit
나는 컨트롤러 이름을 알릴 수 있습니까?
내가 할 때 :
alert('@ViewContext. RouteData.Values["controller"].ToString()');
값은 다음과 같습니다. News
그러나 URL은 다음과 같습니다./Category/foobar
가치 'Category'
를 알리는 방법이 있습니까? 감사
답변
나는 이것을 부분적으로 본다.
@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()
동일한 상황에서 설명하고 부분 뷰의 실제 위치 대신 URL (범주, 제품)에 설명 된 컨트롤러를 보여줍니다.
대신이 경고를 사용하십시오.
alert('@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()');
답변
나는 이것을 이렇게하지만 아마도 ASP.NET MVC 4 일 것입니다.
@ViewContext.RouteData.Values["controller"]
답변
모든 컨트롤러에 대한 기본 클래스를 작성하고 여기에 name 속성을 넣으십시오.
public abstract class MyBaseController : Controller
{
public abstract string Name { get; }
}
보기
@{
var controller = ViewContext.Controller as MyBaseController;
if (controller != null)
{
@controller.Name
}
}
컨트롤러 예
public class SampleController: MyBaseController
{
public override string Name { get { return "Sample"; }
}
답변
View에서 현재 컨트롤러 이름을 얻는 다른 방법
@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
답변
그냥 사용하십시오 :
ViewContext.Controller.GetType().Name
이것은 당신에게 컨트롤러의 전체 이름을 줄 것입니다
답변
폴더 에서를 CategoryController
로드하더라도 여전히 컨텍스트에 있습니다 .PartialView
Views/News
답변
아래 코드 중 하나를 사용하여 컨트롤러 이름을 얻을 수 있습니다
@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString();
MVC 3을 사용하는 경우 사용할 수 있습니다
@ViewContext.Controller.ValueProvider.GetValue("controller").RawValue
