加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – MVC 3使用修改的查询字符串值重新加载当前页面

发布时间:2020-12-16 07:23:02 所属栏目:asp.Net 来源:网络整理
导读:背景: 我有一个MVC布局(主)视图,它使用@ Html.RenderAction在左侧导航面板中显示下拉列表.此下拉列表将显示在网站的所有页面上. 下拉列表包含在表单元素中,并且在下拉列表更改时,表单将被发布. 题: 现在,一旦表单发布,我需要使用查询字符串中附加的下拉列
背景:

我有一个MVC布局(主)视图,它使用@ Html.RenderAction在左侧导航面板中显示下拉列表.此下拉列表将显示在网站的所有页面上.
下拉列表包含在表单元素中,并且在下拉列表更改时,表单将被发布.

题:

现在,一旦表单发布,我需要使用查询字符串中附加的下拉列表的值重新加载当前页面的内容(用户当前所在的页面…).这意味着要替换先前选择中查询字符串中可能存在的值.

例:

>用户导航到网站的主页:

网址:/ Home /?dropdownvalue =蓝色

此时,下拉列表显示“蓝??色”选中.用户将下拉列表中的值更改为“红色”.我需要使用以下网址重新加载页面 –

/首页/?dropdownvalue =红

>用户移动到站点中的另一个页面:

网址:/ CustomerFavorite /?dropdown =红色

将下拉列表中的值从“红色”更改为“绿色”.

‘CustomerFavourite’页面应该在querystring中重新加载’Green’.

我为长篇文章道歉.但是,考虑提供一些额外的信息来澄清问题.

谢谢.

解决方法

感谢Darin为查询字符串的javascript操作提供了链接.但是,我想要一个服务器端解决方案,所以这就是我实现它的方式 –

public ActionResult _ColorSelection(ColorModel model)
{
    string selectedColor = model.Color.Value;

    // Modify Querystring params...

    NameValueCollection querystring = 
            HttpUtility.ParseQueryString(Request.UrlReferrer.Query); // Parse QS

    // If Querystring contains the 'color' param,then set it to selected value
    if (!string.IsNullOrEmpty(querystring["color"]))
    {
        querystring["color"] = selectedColor;
    }
    else  // Add color key to querystring
    {
        querystring.Add("color",selectedColor);
    }

    // Create new url
    string url = Request.UrlReferrer.AbsolutePath 
                         + "?" + querystring.ToString();

    return Redirect(url); // redirect

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读