gpt4 book ai didi

带有对 .cshtml 函数调用的 Javascript 变量

转载 作者:行者123 更新时间:2023-11-30 00:28:44 25 4
gpt4 key购买 nike

我有一个 asp.net MVC 项目,在其中一个 .cshtml 文件中有一个 jquery 微调器。单击按钮时,它会获取微调器的值。我希望在 .cshtml 文件中获取微调器值和调用函数 (C#),并将变量传递给函数。

这是我在 cshtml 中的 jquery 代码。我正在尝试实现一个 ajax POST 方法来使用函数驻留在 Index.cshtml(此代码所在的文件)中的间隔值调用函数“GetData”

        $('#getvalue').on('click', function (event) {
var interval = spinner.spinner("value");
// Make the ajax call
$.ajax({
type: "POST",
url: "@Url.Action("GetData", "Index")",
contentType: "application/json; charset=utf-8",
data: interval,
dataType: "json",
success: function (result) {
alert('It worked!');
},
error: function(exception){alert('Exeption:'+exception);
}
});
});

函数GetData是这样的,因为在cshtml中所以定义为@Helper函数

       @helper GetData(int interval)
{
var xdata = Model.Select(model => model.Id).Take(10).ToList();
}

ajax 调用抛出异常 (Exception [object Object])。我对此不起作用的主要怀疑是 1) 我的“数据”格式和 2) “url”是正确的。

我不仅限于考虑 ajax,我对任何可以调用函数并将变量从 Javascript/Jquery 传递到 .cshtml 中的@Helper 函数的方法持开放态度(如果确实这是最好的方法),也许我应该更多地使用 .cs 文件,即 Controller ?

如有任何帮助和指导,我们将不胜感激。

最佳答案

这篇文章建议了有效的解决方案 - asp.net mvc3 return multiple json list

我已将我的 GetData 函数移出 cshtml 并将其放在 controller.cs 中

    [HttpPost] // can be HttpGet
public ActionResult GetData(int interval)
{
//use interval value here ...

return Json(new { XList = strxdata, YList = strydata }, JsonRequestBehavior.AllowGet);
}

我使用 AJAX 请求从 cshtml 调用 GetData 函数,然后在相同的 JS 代码中处理返回的数据。

     $.ajax({
url: '/SController/GetData',
type: 'POST',
contentType: 'application/json;',
data: JSON.stringify({ id: interval }),
success: function (result) {
$.each(result, function (i, item) {
alert(result.XList);
alert(result.YList);
});
//process the returned data here ....
var jxArray = result.XList.split(',');
var jyArray = result.YList.split(',');
}
});

我希望这对其他人有帮助,事实上我认为将代码拆分到 Controller 比使用 @helper 函数在技术上更正确。

关于带有对 .cshtml 函数调用的 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com