我正在學習有關在 ASP.NET MVC 中使用模式部分視圖進行 CRUD 操作的教程。看起來 JQuery 代碼正在捕獲表單元素及其值,但沒有資料傳遞給控制器??(“emp”包含空值)。我究竟做錯了什么?
這是控制器操作:

這是模態視圖:

這是 JQuery:

最后,這是在發布之前顯示“sendData”包含的內容的警報:

根據 Serge 的建議,JQuery 已更改為:
<script>
$(function () {
var PlaceHolderElement = $('#PlaceHolderHere');
PlaceHolderElement.on('click', '[data-save="modal"]', function (event) {
var form = $(this).parents('.modal').find('form');
var actionUrl = form.attr('action');
var sendData = form.serialize();
$.ajax({
url: actionUrl,
type: "POST",
data: sendData,
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
});
});
});
...這是除錯會話的螢屏截圖,顯示了對控制器方法和引數值的更改:

員工模型:
using System;
using System.Data.Entity;
using System.Linq;
namespace modaldemo2.Models
{
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
}
uj5u.com熱心網友回復:
你在 sendData 中有一個錯誤,這是因為你的視圖,從你的輸入控制元件中洗掉 name="..",或者作為一種解決方法試試這個
<input asp-for="Name" name="Name" class="form-control/>
....
<input asp-for="Email" name="Email" vertical-align: inherit;">嘗試將 [FromForm] 添加到操作中
[HttpPost]
public ActionResult Create ( [FromForm] Employee emp)
最好使用這種 ajax 語法
var sendData = form.serializeArray();
$.ajax({
url: actionUrl,
type: "POST",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
data: sendData,
success: function (result) {
},
error: function (xhr, exception) {
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388811.html
標籤:查询 asp.net-mvc
