我的问题是列出产品清单。我有一个使用复选框创建的类别列表。 单击复选框时,必须根据复选框列出产品列表。 我试着用json和ajax做,但我没有设法做到。 有什么想法吗?
答案 0 :(得分:0)
您的意思是将视图中的cheeckbox中的值传递给控制器吗?
您可以使用Ajax;
在表单元素中插入复选框并设置表单的Id
属性
类似“FormId”的东西;
function Submit() {
$.ajax({
url: "/Home/Index",
type: "POST",
data: $("#FormId").serialize(),
success: function (result) {
if (result.Durum == "OK") {
$('#FormId').html("Successful");
}
和html;
<form id="FormId">
<input id="checkBox" type="checkbox" name="Data">
<button onclick="Submit()"> Submit</button>
</form>
在控制器中;
public class HomeController : Controller
{
[HttpPost]
public ActionResult Index(var Data)
{
//your code here
return Json("OK", JsonRequestBehavior.AllowGet);
}
通知复选框中的name
属性在控制器Index
方法的输入参数中具有相同的值。无论数据类型如何,您都可以传递各种数据,使用Ajax的serialize方法到控制器中的方法,只要name
属性和Index
方法的输入,它就会捕获正确的数据具有相同的价值。
如果您只想传递单个数据,只需在js代码中获取.val
的特定表单元素的值;
function Submit() {
$.ajax({
url: "/Home/Index",
type: "POST",
data: $("checkBox").val(),
success: function (result) {
if (result == "OK") {
$('#FormId').html("Successful");
}
并且还通知ajax函数中的POST
类型,这意味着您应该将[HttpPost]
属性放入控制器中的Index
方法。在您共享的屏幕截图中,您使用GET方法调用ajax方法,但在控制器中使用[HttpPost]
属性接收它,这不起作用。