gpt4 book ai didi

c# - ViewContext.RouteData.Values ["action"] 在服务器上为空...在本地机器上工作正常

转载 作者:太空狗 更新时间:2023-10-29 23:42:41 30 4
gpt4 key购买 nike

我遇到一个奇怪的问题,ViewContext.RouteData.Values["action"] 在我的登台服务器上为空,但在我的开发机器(asp.net 开发服务器)上工作正常。

代码很简单:

public string CheckActiveClass(string actionName)
{
string text = "";
if (ViewContext.RouteData.Values["action"].ToString() == actionName)
{
text = "selected";
}
return text;
}

我在 ViewContext.RouteData.Values["action"] 行收到错误。错误是:

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

感谢任何帮助。提前致谢。

最佳答案

您的开发服务器和暂存服务器上是否有不同版本的 asp.net mvc?尝试将 System.Web.Mvc 在本地复制到登台服务器,看看是否可以解决问题。 (右键点击引用,选择属性,将Copy Local改为true)

这可能对您的情况有帮助,也可能没有帮助,但这是我从 asp.net/mvc 上的 MVC 模板中窃取的辅助扩展:

/// <summary>
/// Checks the current action via RouteData
/// </summary>
/// <param name="helper">The HtmlHelper object to extend</param>
/// <param name="actionName">The Action</param>
/// <param name="controllerName">The Controller</param>
/// <returns>Boolean</returns>
public static bool IsCurrentAction(this HtmlHelper helper, string actionName, string controllerName)
{
string currentControllerName = (string)helper.ViewContext.RouteData.Values["controller"];
string currentActionName = (string)helper.ViewContext.RouteData.Values["action"];

if (currentControllerName.Equals(controllerName, StringComparison.CurrentCultureIgnoreCase) && currentActionName.Equals(actionName, StringComparison.CurrentCultureIgnoreCase))
return true;

return false;
}

关于c# - ViewContext.RouteData.Values ["action"] 在服务器上为空...在本地机器上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252262/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com