0

在 MVC 中,我有一个 WebGrid。此 WebGrid 使用称为 PaginatedList 的 ViewModel 填充。其中确实有实际的 ViewModel 集合,即 RequestViewModel 集合。

在特定事件上,我想使用 Jquery Post 将选定的 ViewModel(即 RequestViewModel)发送到 Controller。我不喜欢使用 $("form").Serialize() 发送整个集合。

请帮忙。谢谢你的时间。

编辑: 在控制器中:

var accessRequestViewModel=objAccessRequest.FetchAll();
var paginatedUAReqs=new PaginatedList<AccessRequestsViewModel>(accessRequestViewModel);
return view(paginatedUAReqs);

在视图中:

@model PaginatedList<RequestsViewModel>
var accessReqWebGrid= new WebGrid(model);
WebGrid.Column("ID");
WebGrid.Column("Name");
WebGrid.Column("Action");// This column has a drop down. On change of selection, jquery post has to be done. Sending the selected row as a model to controller.

在Javascript(Jquery)

$('select[name="Action"]').change(function () {
// Here I would like to send the viewmodel i.e AccessRequestViewModel object along with following Id and TextArea values
$.post(url, {USER_REQ_ID: $("#NotesRowId").val(), Notes: $("#commentsTxtArea").val(), Action: actionVal }, function (data) {
});

尝试的事情:

在 Javascript 中:

var AccessReqViewModel = {
                                REQ_ID: "10",
                                REQ_USER_NAME:"uausername"
                            }
$.post(url, {AR_ViewModel:AccessReqViewModel  USER_REQ_ID: $("#NotesRowId").val(), Notes: $("#commentsTxtArea").val(), Action: actionVal }, function (data) {
    });

在控制器中:

 public ActionResult SaveActionNotes(AccessRequestsViewModel AR_ViewModel, int USER_REQ_ID, string Notes,string Action){}

断点被击中,但视图模型中的值不是我发送的值。

4

1 回答 1

1

使用了以下

$.ajax({
                                url: commentsWinPath,
                                type: 'POST',
                                dataType: 'json',
                                contentType: 'application/json',
                                data: JSON.stringify(data),
                                success: function (data) {
                                    //...
                                },
                                error: function (jqXHR, textStatus, errorThrown) {
                                    //...
                                }
                            });

$.post 对我不起作用,内容类型在解决问题方面发挥了重要作用。

于 2013-06-04T19:06:56.987 回答