gpt4 book ai didi

asp.net-mvc - JQUERY 调用 Controller 操作 : String Parameter truncated if containing 'space' character

转载 作者:行者123 更新时间:2023-12-01 13:00:08 24 4
gpt4 key购买 nike

我有一个接受 2 个字符串参数和 2 个日期值的 View 。用户点击搜索按钮,他们将过滤输出到屏幕上。这一切都很好,直到用户输入一个带空格的字符串。即他们可以搜索“废物”但不能搜索“废油”。

有趣的是,在后者中,在调用之前,Javascript 中的参数是可以的。但是在输入 Controller 代码时,它会从客户端上的“废油”变为“浪费”。发生这种情况时,其他参数将设置为 NULL,从而导致系统崩溃。

我试过用'#'字符替换空格,然后在 Controller 端剥离并放回''。这是一种困惑的软糖,似乎只适用于一个参数。

这个参数数据丢失必须有一个简单的解释,任何评论都非常感谢

不确定是否需要代码示例,但如果它有帮助,无论如何这里是:

我的 Controller 标题:

    public ActionResult IndexSearch(int? page, string searchText,string searchTextSite,string  StartDate,string EndDate)
{

我的 HTML Javascript :
    function Search(sSearchText,sSite) {
sSearchText = sSearchText.toString().replace(" ", "#");
sSite = sSite.toString().replace(" ", "#");
debugger;
alert($("#AbsolutePath").val() + "Waste.mvc/IndexSearch?searchText=" + sSearchText + "&searchTextSite=" + sSite + "&StartDate=" + $('#StartDate').val() + "&EndDate=" + $('#EndDate').val());
$("#ResultsList").load($("#AbsolutePath").val() + "Waste.mvc/IndexSearch?searchText=" + sSearchText + "&searchTextSite=" + sSite + "&StartDate=" + $('#StartDate').val() + "&EndDate=" + $('#EndDate').val(),
function() {
$('#LoadingGif').empty();
});

$('#LoadingGif').empty().html('<img src="' + $("#AbsolutePath").val() + 'Content/images/ajax-loader.gif" alt="Loading image" />');
}

最佳答案

发送 AJAX 请求时,您没有对参数进行 URL 编码,因为您在构建 url 时使用了字符串连接。您可以使用以下技术来正确编码值:

var url = $('#AbsolutePath').val() + 'Waste.mvc/IndexSearch';

var data = {
searchText: sSearchText,
searchTextSite: sSite ,
StartDate: $('#StartDate').val(),
EndDate: $('#EndDate').val()
};

$('#ResultsList').load(url, data, function() {
$('#LoadingGif').empty();
});

现在您将在服务器上获得正确的值。

关于asp.net-mvc - JQUERY 调用 Controller 操作 : String Parameter truncated if containing 'space' character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6771836/

24 4 0