从局部视图到控制器的ajax发布为null

纳文

我有这个莫名其妙,很愚蠢的问题。

我的MVC4应用程序中有一个弱类型的局部视图。在上面我有一个按钮

<input type="button" class="btn btn-primary btn-lg" value="Find" id="fej-find" />

我像这样从控制器发送jQuery ajax调用

//searchedJob.Num = $("#fej-JobNumber").val();
//var DTO = { searchedJob: searchedJob };
var DTO = { searchedJobNumber: $("#fej-JobNumber").val() };
$.ajax({
    data: JSON.stringify(DTO),
    type: 'POST',
    url: '@Url.Action("SearchJobs", "Jobs")',
    success: function (msg) {
        return alert(msg);
    }
});

萤火虫向我展示了这个

在此处输入图片说明

但是当我调试时,我的控制器显示了这一点。

在此处输入图片说明

我的代码出了点问题。那会是什么呢?

达林·迪米特罗夫(Darin Dimitrov)

您什么都不需要JSON.stringify只需data使用与操作参数名称(searchedNumber相同的键传递参数中的值即可

$.ajax({
    url: '@Url.Action("SearchJobs", "Jobs")',
    type: 'POST',
    data: { searchedNumber: $("#fej-JobNumber").val() },
    success: function (msg) {
        alert(msg);
    }
});

还要注意,您不应从success回调中返回任何值

当您想向服务器发送更大,更复杂的有效负载(例如整个模型)时,可以使用JSON。例如,假设您具有以下视图模型:

public class MyViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<string> Tags { get; set; }
}

您的控制器动作将其用作参数:

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    ...
}

现在,您可以从客户端将其作为JSON发送:

var model = {
    id: 5,
    name: $('#some_input_field').val(),
    tags: [ "tag1", "tag2", "tag3" ]
};
$.ajax({
    url: '@Url.Action("SomeController", "SomeAction")',
    data: JSON.stringify(model),
    contentType: 'application/json',
    success: function(result) {
        alert(result);
    }
});

请注意,在这种情况下,您需要如何将适当的Content-Type请求标头设置为,application/json以便服务器上的默认模型绑定程序将能够自动将请求正文有效负载反序列化为相应的视图模型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Ajax发布到ASP.net MVC控制器-对象属性为null

通过ajax发布到控制器的模型为空

发布到控制器时,部分viewmodel为null

MVC获取从动态创建的局部视图发布到控制器的模型数据

Ajax 发布到控制器 404

通过MVC中的Ajax将模型从局部视图传递到控制器

AJAX发布到ASP.NET MVC 6控制器的操作方法和参数为null

JQUERY ajax将JSON发布到C#MVC控制器,但是传入的数据为null

我正在使用Ajax发布到Mvc中的控制器,但是我的var在foreach中重置为null

在发布到控制器的表单上,模型始终为NULL

jQuery Ajax发布到MVC控制器不起作用(返回null)

将对象的动态列表从视图发布到控制器

无法将对象列表从视图发布到控制器

从视图到控制器的 Ajax 请求正文在 ASP NET Core MVC 3 中为空

从Yii从控制器传递到视图时,该值为null

发布到控制器时,图像值为空

使用jquery ajax发布到CakePHP控制器

ajax不会将文件发布到控制器mvc

将ajax数据发布到spring控制器

MVC Ajax在单击事件中发布到控制器

从控制器加载局部视图

AJAX发布数据在控制器MVC中为空

值不使用ajax从视图传递到控制器

Ajax将值从视图传递到控制器

从视图到控制器的ajax对象不包含数据

使用 Ajax 将数据从视图传递到控制器

从视图传递到控制器时,列表返回null

BootStrap Datepicker从视图到控制器返回null

数据未传递到情节提要中的局部视图控制器