【问题标题】:Add parametr to query string in MVC在 MVC 中向查询字符串添加参数
【发布时间】:2012-12-05 10:31:24
【问题描述】:

如何在 MVC 中添加参数以链接?当我在下面的代码中使用这个(在控制器中)时

Model model = GetModel();
string lang = "pl";
string viewName = "MyPage";
return View(viewName + "?lang=" + lang, model);

我得到错误 未找到视图“MyPage?lang=pl”或其主视图,或者没有视图引擎支持搜索到的位置。搜索了以下位置:...

【问题讨论】:

  • 你打算用这个查询字符串参数做什么? MVC 中的查询字符串参数会针对相关控制器进行解析,如果您希望在页面中传递一个附加参数以供使用,您应该考虑使用 ViewBag
  • 我想有机会把这个网址发给其他人

标签: c# asp.net-mvc


【解决方案1】:

当您返回View 结果时,ASP.NET MVC 只会为您呈现此视图。它没有任何网址。用户在浏览器中输入 URL 以调用您的 MVC 操作。如果您想更改网址,您应该使用RedirectToAction 结果。例如:

return RedirectToAction("MyPage", new {lang = "pl"});

【讨论】:

    【解决方案2】:

    使用 ViewData 或高级 ViweModel 类将数据传递给视图。

    Model model = GetModel();
    ViewData["lang"] = "pl";
    return View("MyPage", model);
    

    当然,如果您在视图中引用查询字符串(这很糟糕),请修复它以引用 ViewData。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 2017-02-01
      相关资源
      最近更新 更多