首页 > 解决方案 > 在 MVC 控制器中使用 jquery post 发布后字符串为空

问题描述

我想将一个字符串发布到 MVC 控制器并返回一个局部视图。视图返回,但字符串显示为空。我的控制器:

public PartialViewResult CreateServiceRateModal(string serviceId)
    {
        System.Diagnostics.Debug.WriteLine(serviceId);
        //var a = JsonSerializer.Serialize();
        ViewData["ServiceId"] = serviceId;
        return PartialView("~/Views/ServicesManager/_CreateServiceRate.cshtml");
    }

查询:

function CreateServiceRateModal() {
var Id = $('#ServiceId').val();    
$.post('CreateServiceRateModal', JSON.stringify(Id)).done(function (data) {
    $('#modal-placeholder').html(data);
    $('#modal-placeholder').find('.modal').modal('show');
});

发帖前我查过id不为空。

标签: javascriptjquerymodel-view-controller.net-core

解决方案


您需要使用与您的控制器方法参数名称匹配的属性名称作为对象传递它,因此将其更改为此,您可以在文档中阅读更多信息(https://api.jquery.com/jquery.post/):

$.post('CreateServiceRateModal', { serviceId: Id }).done(function (data) {
  $('#modal-placeholder').html(data);
  $('#modal-placeholder').find('.modal').modal('show');
});

推荐阅读