c# - 如何通过局部视图从 ajax 成功中获取模型的特定数据
问题描述
我想获得模型在 ajax 成功中的特定价值。我不能在这里使用 Json 结果,因为我还需要在具有部分视图的 div 容器中加载模型值。
这是我的模型
public class ProductModel
{
public int ProductId { get; set; }
public decimal? Cost { get; set; }
public string Description { get; set; }
public bool IsCostUpdated { get; set; }
}
我只想在 ajax 成功中获取 IsCostUpdated 的值。在控制器中,我必须返回强类型的局部视图。这是代码
[HttpPost]
public ActionResult CheckProductCost(ProductModel model)
{
ModelState.Clear();
using (var db = DataContext.Db)
{
model.IsCostUpdated = model.CheckUpdate(db);
}
return PartialView("ProductDataTable", model);
}
这是我的ajax调用代码
$.ajax({
url: productCostUrl,
dataType: 'html',
type: 'POST',
data: $('body').find('.productTable').closest('.dataComponent').find(':input').serialize(),
success: function (d) {
var isSuccess = d.IsCostUpdated; [I want this value]
$('body').find('.productTable').html(d)
}
});
解决方案
您可以JsonResult
在当前的ActionResult
. 只需检查正在发出的请求是否是ajax
请求。你ActionResult
会变成这样:
[HttpPost]
public ActionResult CheckProductCost(ProductModel model)
{
ModelState.Clear();
using (var db = DataContext.Db)
{
model.IsCostUpdated = model.CheckUpdate(db);
}
if (Request.IsAjaxRequest()) // THIS IS AVAILABLE INSIDE THE SYSTEM.WEB.MVC ASSEMBLY
return Json(new { IsCostUpdated = model.IsCostUpdated });
return PartialView("ProductDataTable", model);
}
推荐阅读
- c# - 我正在尝试在上传到数据库之前验证用户输入。我已链接我的验证和主代码,但我一直收到错误
- python - 我可以提取由 xarray plot contourf 调用生成的自动标题吗?
- django - DRF get_queryset 检查是否在 ManyToManyField
- android - 如何将存储权限与外部存储管理员权限捆绑在一起
- python - 在python中打印链表
- ios - 如何从 CAGradientLayers 和 CAShapeLayers 组成 UIButton?
- html - 溢出在css网格内表现异常
- xamarin - 如何为标签指定日语编码?
- typescript - 在 react native 上使用 DrawerNavigator 和堆栈导航
- reactjs - How to change image using hover in jsx