gpt4 book ai didi

c# - 如何发送空值?

转载 作者:太空狗 更新时间:2023-10-29 23:35:09 26 4
gpt4 key购买 nike

我想做这样的事情

$.get('/Controller/Action/', { model : null }, function(data) {});

不幸的是,它不起作用。在服务器端,模型的值为 {object}

如何获取null

编辑

--- Javascript ---

var json = JSON.stringify({ model: null });
$.get('/Controller/Action/', json, function (data) { });

--- Controller ---

[HttpGet]
public ActionResult Test(object model)
{
// here i need model = null but keep returning {object}
return PartialView("TestPartial");
}

最佳答案

我很难准确理解您的要求,所以我要尝试一下。 :)

如果你只想不发送任何值,那么只需将数据设置为空

$.get('/Controller/Action/', null, function(data) {});

如果您希望 Action 的一个参数为空,则只需将其从数据数组中排除即可。

例如,对于这个 Action :

[HttpGet]
public JsonResult Foo(string bar, string foo)
{
/*The Magic*/
}

您可能只想为 bar 而不是 foo 发送一个值,那么 jquery 将是:

$.get('/Controller/Foo/', { bar: 'It's a bingo! }, function(data) {});

这将导致 bar 成为传递值,而 foo 成为 null。

另一件需要注意的事情是,为了避免 JSON 劫持,ASP.NET MVC 2 被设计为从 POST 请求而不是 GET 请求传递 JSON。

原因可以在这里找到:http://haacked.com/archive/2009/06/25/json-hijacking.aspx

要进行此更改,请使用 [HttpPost] 属性装饰您的 Action,并将您的 jQuery 更改为:

$.post('/Controller/Foo/', { bar: 'It's a bingo! }, function(data) {});

希望对您有所帮助。

编辑我只是想/发现了一些东西。不要传递 { model: null } 尝试传递 { model: undefined } 。我只是遇到了一个类似的问题,我想将任何内容传递回字符串参数和 'null ' 给出了 "null" 字符串,其中 undefined 给出了 null

关于c# - 如何发送空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2879265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com