C# 返回控制器中的参数,而不是视图中的参数
我有一个控制器,其中我有一个方法,但我只在另一个控制器中使用方法,所以我不需要返回 视图,但我不知道可以返回什么,而是返回一个返回视图() 代码: 总之,我没有视图,所以VS将其标记为红色 有人能给我解释一下它的基本原理吗?我可以返回什么来代替视图?问候C# 返回控制器中的参数,而不是视图中的参数,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个控制器,其中我有一个方法,但我只在另一个控制器中使用方法,所以我不需要返回 视图,但我不知道可以返回什么,而是返回一个返回视图() 代码: 总之,我没有视图,所以VS将其标记为红色 有人能给我解释一下它的基本原理吗?我可以返回什么来代替视图?问候 注意:应用程序100%正确运行,但我有这个家伙,Asp.Net MVC使用约定而不是配置。因此,约定是,当您从某个操作方法中获得类似于returnview()的语句时,框架将在~/Views/YourControllerName目录或~/Vie
注意:应用程序100%正确运行,但我有这个家伙,Asp.Net MVC使用约定而不是配置。因此,约定是,当您从某个操作方法中获得类似于
returnview()
的语句时,框架将在~/Views/YourControllerName
目录或~/Views/Shared
目录中查找与操作方法名称同名的视图。Visual studio向您发出警告,表示此项目中这些位置不存在此类视图
您的代码正在工作,因为return View()
不会作为上面的行执行,该行重定向到您正在传递的url。只需删除returnview()
语句即可
由于您的方法具有返回类型(ActionResult
),因此需要返回一些内容。您可以使用重定向
方法并返回结果
public ActionResult language()
{
if (Session["UserLanguage"].ToString() == "english")
Session["UserLanguage"] = "spanish";
else
Session["UserLanguage"] = "english";
return Redirect("/" + Session["UserLanguage"] + "/index");
}
因为你在你的应用程序中重定向到一个动作方法,你可能会考虑<代码> RetrutttoAction 方法,它将去掉字符串连接来生成新的URL,并为你建立正确的URL。
public ActionResult language()
{
if (Session["UserLanguage"].ToString() == "english")
Session["UserLanguage"] = "spanish";
else
Session["UserLanguage"] = "english";
return RedirectToAction("Index", Session["UserLanguage"] as string);
}
另外,在对会话项调用ToString()
方法之前,请确保执行空检查
if (Session["UserLanguage"]!=null && Session["UserLanguage"].ToString() == "english")
{
//your code
}
else
{
}
我在视图中使用它,如
if (Session["UserLanguage"]!=null && Session["UserLanguage"].ToString() == "english")
{
//your code
}
else
{
}