【发布时间】:2019-09-17 16:46:49
【问题描述】:
我正在尝试将 List 类型的模型类从视图传递到控制器操作方法。
我无法从 mvc 中找到一个已经内置的方法来完成这项任务,而且我对 ajax/jquery 不太熟悉。以前发布的问题中很少有真正适合我的需求,而且还不够。请帮忙。
我有一个模型类,我能够在视图中填充所有数据,然后用户将对这些数据中的任何一个进行更改,并且表中显示的整个数据应该发送到控制器中。
我的控制器中的一个方法正在等待模型类的 List 类型。
public ActionResult Save(List<MyModel> myModel){
...
}
如何将模型类发送到控制器中的方法中?
我尝试了以下 js 代码,但根本不工作
这是我的模型类
public class MyModel
{
public int spi_id { get; set; }
public int s_id { get; set; }
public int st_id { get; set; }
}
这是我的观点
@model IEnumerable<MyModel>
<form action="@Url.Action("Save", "Home")" method="post">
<table class="table" id="tblIe">
<tr>
<th>
@Html.DisplayNameFor(model => model.s_id)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.s_id)
</td>
</tr>
}
</table>
<input type="submit" name="send" value="Send" id="btnSend" />
<script type="text/javascript">
$(document).ready(function () {
$("#btnSend").click(function (e) {
alert("button click");
e.preventDefault();
var model = @Html.Raw(Json.Encode(Model))
$.ajax({
type: 'post',
url: '@Url.Action("Save", "Home")',
data: JSON.stringify({ myModel: model }),
contentType: 'application/json; charset=utf-8',
dataType: "json",
success: function (data) {
alert(data);
}
});
});
});
</script>
这是我的控制器
[HttpPost]
public ActionResult Save(List<MyModel> myModel)
{
_service.SaveMyModel(myModel);
return View("Index");
}
我需要将此模型的全部内容作为 LIST 传递到我的 Controller 中的 Save 方法中。
【问题讨论】:
-
MyModel类的内容是什么?
-
它们是简单的类属性 id int school_id int uniruq style_id int colour_id int image_type char(1) last_update smalldatetime last_update_by varchar(15)
-
您需要创建一个包含 MyModel 类列表的视图模型,然后将该视图模型绑定到该视图。
-
不需要使用Javascript,模型会随表单回传。你能显示你的表格的html吗?
-
根据你的表格html,只会显示
school_id,你不能编辑任何东西。缺少任何输入字段吗?
标签: c# .net asp.net-mvc