gpt4 book ai didi

jquery - 使用c# Ajax请求MVC 4.0

转载 作者:行者123 更新时间:2023-12-03 22:59:50 25 4
gpt4 key购买 nike

我想通过ajax请求返回一条记录

C#代码如下:

    [HttpPost]
public WorkoutsViewModel GetSavedWorkoutTemplate(int WorkoutId)
{
return _db.Workouts.Where(w => w.Id == WorkoutId).Select(w => new WorkoutsViewModel
{
Tag = w.Tags.FirstOrDefault(),
Name = w.Name,
MaxEffort = w.MaxEffort,
Id = w.Id,
Description = w.Description,
Compare = w.Compare,
Category = w.Category
}).FirstOrDefault();
}

jQuery 代码是:

function GetSavedWorkoutTemplate(obj) {      
$("#Workout").hide();
var WorkoutId = $(obj).val();
if (WorkoutId == "") {
return;
}
var dto = { "WorkoutId": WorkoutId };

$.ajax({
type: "post",
url: "/MemberWorkout/GetSavedWorkoutTemplate",
contenttype: "application/json; charset=utf-8",
data: dto,
success: function (result) {
debugger;
$("#Workout").show();
},
error: function (result) {
alert("Unable to update status.");
}
});
}

HTML:

 @Html.DropDownList("ddlWorkout", new SelectList(ViewBag.ddlWorkout, "Id", "Name"), "--Select Workout--", new { required = true, onchange = "GetSavedWorkoutTemplate(this);", style = "width:310px" })

在成功函数中,我得到的结果为“TheGYM.Web.Models.WorkoutsViewModel”,作为字符串而不是模型,请纠正我做错了什么,我想返回一个模型。

最佳答案

您必须返回 JsonResult,而不是模型对象。

将您的操作更改为:

[HttpPost]
public ActionResult GetSavedWorkoutTemplate(int WorkoutId)
{
return Json(_db.Workouts.Where(w => w.Id == WorkoutId).Select(w => new WorkoutsViewModel
{
Tag = w.Tags.FirstOrDefault(),
Name = w.Name,
MaxEffort = w.MaxEffort,
Id = w.Id,
Description = w.Description,
Compare = w.Compare,
Category = w.Category
}).FirstOrDefault());
}

关于jquery - 使用c# Ajax请求MVC 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233849/

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