0

无论如何在 MVC 强类型视图中找出ActionResult控制器中的哪个通过了模型?我不想在这个阶段在模型中添加额外的字段或在我的查询字符串中添加任何内容?甚至可能吗?抱歉,这可能是一个菜鸟问题。任何帮助表示赞赏。

4

3 回答 3

3

别介意对 MVC 架构原则的验证喃喃自语;)

将此代码放在您的视图中:

string action = @ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
于 2013-06-28T17:48:06.497 回答
3

在视图中,您可以访问上下文,然后您可以从当前请求中检索操作/控制器,如下所示:

@{
    string controller = RequestContext.RouteData.Values["controller"].ToString();
    string action = RequestContext.RouteData.Values["action"].ToString();
}

然后你可以在视图中使用它来做一些有条件的

@if(action.Equals("some name"))
{
    //Do stuff here
}
于 2013-06-28T17:48:34.593 回答
1

Action 应该告诉 View。您可以将其包装在 ViewModel 中,而不是向您的模型添加额外的字段:

public class MyViewModel 
{
    public MyModel InnerModel {get; set; }
    public string ActionName {get; set; }
}

或者使用 ViewBag:

ViewBag.ActionName = "MyActionName";
于 2013-06-28T17:48:08.137 回答