Я изо всех сил пытаюсь понять, что именно вы спрашиваете, поэтому я попытаюсь попробовать это. :)
Если вы просто не хотите отправлять значение, просто установите для данных значение null
$.get('/Controller/Action/', null, function(data) {});
Если вы хотите иметь один параметр действия null, просто исключите его из массива данных.
Например, для этого действия:
[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
будет нулевым.
Еще одна вещь, которую стоит отметить, чтобы избежать перехвата JSON, ASP.NET MVC 2 предназначен для передачи JSON из запроса POST
, а не GET
.
Причину можно найти здесь: http://haacked.com/archive/2009/06/25/json-hijacking.aspx
Чтобы внести это изменение, украсьте свое действие атрибутом [HttpPost]
и измените свой jQuery на:
$.post('/Controller/Foo/', { bar: 'It's a bingo! }, function(data) {});
Надеюсь, это поможет.
EDIT
Я просто подумал / открыл что-то. Вместо передачи { model: null }
попробуйте передать { model: undefined }
. У меня просто была похожая проблема, когда я хотел ничего не передавать обратно строковому параметру, а 'null' дал строку "null"
, где undefined
дал null
.