我有2个语言切换链接
<a class="dropdown-item"
href="@Url.Action(ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "en" }, null)"
style="color:#333;">English</a>
<a class="dropdown-item"
href="@Url.Action(ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "ar" }, null)"
style="color:#333;">Arabic</a>
工作正常,URL中只有控制器和操作 但是,如果有详细信息和编辑操作之类的可选参数,例如id,则无法按预期工作。
我认为我必须用一些东西来更改null(最后一个参数),但是我是新手,并且在Google上搜索了很多,但没有得到任何有价值的东西,请帮助我。
如果该解决方案适用于n个可选参数而不是仅一个Id
,那就更好了,但是现在这也是可以接受的。
答案 0 :(得分:0)
如果解决方案适用于n个可选参数而不是仅一个ID,那就更好了
为了更好地使用MVC控制器端的所有传递的querystring参数,请使用
Request.QueryString
Request.QueryString是NameValueCollection,您将在actionlink中的querystring参数中传递值。
我尝试过如下图
<a class="dropdown-item" href="@Url.Action(ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "ar",id="100",studentid = 1,studentName = "abc" }, null)" style="color:#333;">Arabic</a>
和您的mvc控制器如下所示
public ActionResult About(int id)
{
var querystring = Request.QueryString;
// in querystring you get all value like below screenshot
var studentName = querystring["studentName"]; // access parameter like
ViewBag.Message = "Your application description page.";
return View();
}