gpt4 book ai didi

javascript - 我们如何知道MVC5中 Controller 的 View 中检查了哪些@HTML.CheckBox()

转载 作者:行者123 更新时间:2023-11-28 15:08:54 26 4
gpt4 key购买 nike

我花了很多天尝试将信息从 View 传递到 Controller 使用@Html.CheckBox()

我有一个文本区域和一个复选框循环(我们不知道有多少个)。我可以管理文本区域,但不能管理复选框。

View :

    @using (Html.BeginForm("ProviderConfigurationTool", "Admin"))
{
<div>
<strong>Custom Rule </strong>
@Html.TextArea("CustomRule", new { rows = 12, columns = 30 })
<br />
</div>
foreach (var item in ViewBag.farmlist)
{
<table>
<tr>
<td style="border-bottom: solid 1px #EBEFF6">
<p>@item</p>
@Html.CheckBox("@item");
<!-- <input id="@item" name="@item" type="checkbox" onclick="addingFarms('@item')" class="farms" /> -->
</td>
</tr>
</table>
}

<input type="submit" value="Submit and close" onclick="refreshParent();self.close()" />

}
@{Html.EndForm();}

正如你所见,我也尝试使用“type=checkbox”使用普通的 html 代码

Controller :

    [HttpPost]
public ActionResult Create(string CustomRule, FormCollection collection)
{

string results = collection["Blanks"]; // it does not work
newRule.Key = CustomRule; // it works
}

另一个想法是使用 JavaScript 并尝试创建一个列表来传递给 Controller ​​,就像这样

查看:
input id="@item" name="@item" type="checkbox" onclick="getFarms('@item')" class="farms"

function getFarms() {
var inputs = document.querySelectorAll("input[type='checkbox']");
for (var i = 0; i < inputs.length; i++) {
inputs[i].checked = true;
//Here I am blocked because I don't know how to pass a new list to the controller
}

如果有人已经遇到这个问题或有想法,请帮助我!

最佳答案

您可以使用 ajax 来实现此目的。在 .cshtml 页面中:

<input type='checkbox' name='ch' value='@item'>

在 JQuery 中:

var it=$('ch:checked').serialize();  $.ajax('yourcontoroller/youractionname',it)

在你的 Controller 中:

public ActionResult Create(string customRule, string[] ch) 
{
...
}

关于javascript - 我们如何知道MVC5中 Controller 的 View 中检查了哪些@HTML.CheckBox(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530407/

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