You need to enable JavaScript to run this app. 如何获取查询字符串值传入Kendo Grid的update方法并传递给MVC控制器
优惠活动
大模型
产品
解决方案
定价
更多

如何获取查询字符串值传入Kendo Grid的update方法并传递给MVC控制器

解决方案

你需要将URL查询字符串中的chiefEvalCriteriaId参数传递到Controller的EditEvaluationCriteria方法有两种可行方案,你当前使用的是Server模式DataSource,优先推荐第一种:


方案一:CSHTML服务端直接读取查询参数

直接在Razor视图中通过Request.QueryString读取URL参数,拼到Update请求的路由参数中即可:
将你代码里DataSource的Update配置段修改为:

.Update("EditEvaluationCriteria", "EvaluationCriteria", new { 
    area = "Proposal", 
    Id = Model.SolicitationDetails.SolicitationID,
    // 直接读取URL中的查询字符串参数
    chiefEvalCriteriaId = Request.QueryString["chiefEvalCriteriaId"] != null ? int.Parse(Request.QueryString["chiefEvalCriteriaId"].ToString()) : 0
})

这种方式不需要额外写JS代码,服务端渲染的时候就会把参数直接写入Grid的更新请求地址,Controller可以直接接收到参数值。


方案二:前端JS动态传参(适合Ajax模式DataSource场景)

如果你的Grid后续切换为Ajax绑定模式,可以通过JS读取浏览器地址参数传递:

  1. 先在页面添加JS代码实现查询字符串读取和参数传递:
// 读取URL查询参数的通用方法
function getQueryString(name) {
    const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    const result = window.location.search.substr(1).match(reg);
    return result ? decodeURIComponent(result[2]) : null;
}

// 给Grid更新请求附加参数
function addUpdateParams() {
    return {
        chiefEvalCriteriaId: getQueryString("chiefEvalCriteriaId")
    }
}
  1. 修改Grid的DataSource Update配置为:
.Update(update => update.Action("EditEvaluationCriteria", "EvaluationCriteria", new { area = "Proposal", Id = Model.SolicitationDetails.SolicitationID })
.Data("addUpdateParams")

两种方案都可以保证Controller的EditEvaluationCriteria方法正常接收到chiefEvalCriteriaId参数值,无需修改Controller现有代码即可正常使用。

内容的提问来源于stack exchange,提问作者NetBlazer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:54:02