c# - 如何使用部分 View 从 ajax success 中获取模型的特定数据

标签 c# jquery ajax asp.net-mvc

我想获得模型在 ajax 成功中的具体值(value)。我不能在这里使用 Json 结果,因为我还需要在具有局部 View 的 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 的值。在 Controller 中,我必须返回强类型的局部 View 。 这是代码

[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)
        }
    });

最佳答案

可以在您当前的ActionResult 中返回一个JsonResult。只需检查发出的请求是否为 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# - 如何使用部分 View 从 ajax success 中获取模型的特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56681157/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'add' of undefined tinymce version 4. x

php - 我的 AJAX 代码不更新数据库

c# - 使用 Winforms 应用程序分发 Access 数据库

c# - 只要TextBox具有键盘焦点,就保持弹出窗口处于打开状态并处于事件状态

c# - 从磁盘加载 WindowsFormsControlLibrary DLL,然后添加到控件,C#

javascript - 重用 XMTHttpRequest 对象?

javascript - 单选按钮/复选框未使用 AJAX 输入 MySQL DB

c# - P/Invoke 调用的方法是否在同一个线程中运行?

javascript - 如何加载和停止基于Ajax的垂直滚动功能+gif图像加载器

jquery hover alternate 在 IE10 中不起作用