Ami*_*mar 5 asp.net-mvc jquery c#-4.0
我想通过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();
}
Run Code Online (Sandbox Code Playgroud)
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.");
}
});
}
Run Code Online (Sandbox Code Playgroud)
HTML:
@Html.DropDownList("ddlWorkout", new SelectList(ViewBag.ddlWorkout, "Id", "Name"), "--Select Workout--", new { required = true, onchange = "GetSavedWorkoutTemplate(this);", style = "width:310px" })
Run Code Online (Sandbox Code Playgroud)
在成功函数中我得到的结果是"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());
}
Run Code Online (Sandbox Code Playgroud)
在 C# 中,您需要使用Json()来正确序列化对象。尝试这个:
public ActionResult GetSavedWorkoutTemplate(int WorkoutId)
{
var workout = _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());
return Json(workout);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |