在 mvc 视图模型中获取当前操作

Get current action in mvc view model

我有一个在多个操作之间共享的视图模型。是否可以获取正在调用的操作的名称,如果可以,我该如何实现。我需要自定义验证器函数中的操作名称。

您可以在包含其用途的视图模型中添加 属性。您可以在控制器中设置它。

不确定这是否对您有用,但如果您需要从视图访问它,您可以通过以下方式访问:

(string)Html.ViewContext.RouteData.Values["action"]

如果您经常需要,您可以像这样创建一个扩展方法:

public static string GetAction(this HtmlHelper helper)
{
    return (string)helper.ViewContext.RouteData.Values["action"];
}

然后只需在视图中执行此操作:

@{
    var action = Html.GetAction();
}

...
@if (action.Equals("YourAction"))
{
    ...
}