Я написал помощника для моего проекта бритвы, используя некоторые подсказки из других ответов.
Дело ParseQueryString необходимо, потому что нам не разрешено вмешиваться в объект QueryString текущего запроса.
@helper GetQueryStringWithValue(string key, string value) {
var queryString = System.Web.HttpUtility.ParseQueryString(HttpContext.Current.Request.QueryString.ToString());
queryString[key] = value;
@Html.Raw(queryString.ToString())
}
Я использую его следующим образом:
location.search = '?@Helpers.GetQueryStringWithValue("var-name", "var-value")';
Если вы хотите, чтобы он принимал более одного значения, просто измените параметры на словарь и добавьте пары в строку запроса .