MVC View如何确定哪个ActionResult传递了模型?

时间:2013-06-28 17:39:06

标签: asp.net-mvc

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

3 个答案:

答案 0 :(得分:3)

不要介意对MVC架构的原理进行验证;)

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

string action = @ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();

答案 1 :(得分:3)

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

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

然后你可以在视图中使用它来制作一些条件

@if(action.Equals("some name"))
{
    //Do stuff here
}

答案 2 :(得分:1)

行动应告诉视图。您可以将其包装在ViewModel中,而不是将额外的字段添加到模型中:

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

或使用ViewBag:

ViewBag.ActionName = "MyActionName";