我将数据从 View 传递到 Controller 以发布到数据库,我使用 Entity Framework 的数据库优先方法,因此模型设置正常,
我有一个空数组 var formArray = [];
。输入字段中的数据被捕获为
var OPDNo = $('[name= OPDNo]').val();
var Re = $('[name= re]').val();
var Le = $('[name= le]').val();
在我看来,我有输入变量,我已将它们放入 formData{} 中,如下所示
var formData = {
'OPDNo': OPDNo,
'VAFRE': Re,
'VAFLE': Le
};
OPDNo、Re、Le 都是输入字段。我使用 Ajax 传递数据,如下所示:
if (formData != null) {
$.ajax({
url: '/EMR/SaveVisionScreening',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({ formArray: formData, selectValues: selectValues }),
success: function () {
showNotification("Record Saved Successfully", "info", true);
}
});
}
在我的 Controller 中,
[HttpPost]
public void SaveVisionScreening(string formArray, string [] selectValues)
{
//Code...
}
当我调试时, Controller 在 string formArray 上返回 null,我还设置了 ***traditional: true ** 但它仍然是 null。 我在这里检查了一些解决方案,但它并没有帮助我解决它。
最佳答案
您可以创建一个代表您的输入的类,而不必具有两个输入参数。例如,您可以创建一个像这样的类:
public class FormData
{
public string OPDNo { get; set; }
public string VAFRE { get; set; }
public string VAFLE { get; set; }
public string[] selectValues { get; set; }
}
然后像这样修改你的 JS 代码:
var selectValues = [];
selectValues.push('item1');
selectValues.push('item2');
var formData = {
OPDNo: 'OPDNo',
VAFRE: 'Re',
VAFLE: 'Le',
selectValues: selectValues
};
$.ajax({
url: '/home/SaveVisionScreening',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(formData),
success: function () {
showNotification("Record Saved Successfully", "info", true);
}
});
然后你的 Controller 方法如下:
[HttpPost]
public void SaveVisionScreening(FormData formData)
{
}
关于javascript - 在 ASP.Net MVC 5 中将 javascript 数组从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60410109/