gpt4 book ai didi

javascript - 数组未从 View MVC 传递到 Controller

转载 作者:行者123 更新时间:2023-12-03 12:12:38 25 4
gpt4 key购买 nike

在我的模型中,我有这些属性,

public string[] SelectedIDs {get; set;}
public int BookId {get;set;}
public int LanguageId {get;set;}

在我看来,我有以下几点,

@Html.HiddenFor(model => model.SelectedIDs )
@Html.HiddenFor(model => model.BookId )
@Html.HiddenFor(model => model.LanguageId )

使用 JavaScript 数组 (SelectedItemIds) 我正在更新 SelectedIDs,

$a("#SelectedIDs").val(SelectedItemIds.join());
alert($a("#SelectedIDs").val());

警报成功返回逗号分隔值。如果我对我的操作执行 post 没问题,我会得到以逗号分隔的 SelectedIDs 。然而,我的要求是在对话框中填充 View ,但是在传递时我总是将 SelectedIDs 设为 null。

我尝试了以下两种方法。

方法一:

我的行动是:

public ActionResult MyMethod1(MyModel model)
{
}

我将操作链接用作

@Html.ActionLink("My Book", "MyMethod1", "BookOrder", new { @id = "SubmitBooks", @class = "subBook", data_dialog_id = "AddBookDialog", data_dialog_title = "Add Books", data_dialog_width = 800, data_dialog_height = 550 }) 

在此方法中,我成功获取了 model.BookID 以及 model.LanguageId,但 model.SelectedIDsnull.

方法2:

我的行动是:

public ActionResult MyMethod2(string[] selectedItems, int bookId, int langId)
{
}

我将操作链接用作

@Html.ActionLink("My Book", "MyMethod2", "BookOrder", new { @selectedItems= Model.SelectedIDs , @bookId= Model.BookId, @langId = Model.LanguageId }, new { @id = "SubmitBooks", @class = "subBook", data_dialog_id = "AddBookDialog", data_dialog_title = "Add Books", data_dialog_width = 800, data_dialog_height = 550 }) 

这里我也得到了 bookidlangId,但没有 selectedItems,即 null

最佳答案

序列化数组时需要设置traditional: true。

$.ajax({
type: "POST",
traditional: true,
url: "../BookOrder/MyMethod2",
data: { function_param: SelectedIDs}

});

找到了关于传统:true 的作用的很好的解释:https://stackoverflow.com/a/5497151/2419531

如果您不想使用传统:true,您可以使用 JSON.stringify 将数据作为字符串传递并指定 contentType:

$.ajax({
type: "POST",
url: "../BookOrder/MyMethod2",
contentType: 'application/json',
data: JSON.stringify({function_param: SelectedIDs}),

});

关于javascript - 数组未从 View MVC 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24888949/

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