Jquery 用管道分隔的参数值未从@Url.action完全传递到操作方法

Jquery 用管道分隔的参数值未从@Url.action完全传递到操作方法,jquery,asp.net-mvc-4,Jquery,Asp.net Mvc 4,我使用jquery.load将字符串值传递给action方法,该值由管道分隔,如下所示: var filterText = "Programming|Web Apps"; var url = '@Url.Action("LoadSelectedFilterItem", "Article", new { filterData= "filterdata"})'; url = url.replace('fi

我使用jquery.load将字符串值传递给action方法,该值由管道分隔,如下所示:

var filterText = "Programming|Web Apps";
var url = '@Url.Action("LoadSelectedFilterItem", "Article", new { filterData= "filterdata"})';
        url = url.replace('filterdata', filterText);
        $('#dvfilterNavItem').load(url);
public ActionResult LoadSelectedFilterItem(string filterData)
{
    return Json(true);
}
但当我检查下面的操作方法时,我在其中传递了字符串参数,它显示如下:

var filterText = "Programming|Web Apps";
var url = '@Url.Action("LoadSelectedFilterItem", "Article", new { filterData= "filterdata"})';
        url = url.replace('filterdata', filterText);
        $('#dvfilterNavItem').load(url);
public ActionResult LoadSelectedFilterItem(string filterData)
{
    return Json(true);
}
当我调试上面的代码时,发现这个字符串参数包含如下值:“Programming | Web”


这里,包含中间空格的第二个值被截断。

尝试使用
url=url.replace('filterdata',encodeURI(filterText))
url=url.replace('filterdata',escape(filterText))
@freedomn-m,谢谢,是的,在使用encodeURI后,它会按预期工作。