Ajax调用后控制器中的参数为Null
Parameter in Controller Null After Ajax Call
以下是场景:
当用户选择Details
按钮(JavaScript函数)时,getPersonId
会按预期获取人员ID。
问题发生的位置:
在选择了personId
之后,我将该Id
发送到ajax
呼叫中。Id
通过了,但遇到了问题:我的成功应该是什么和传递给控制器的personId为空
问题列表:
- 向控制器发送参数时,成功是如何工作的
- C#参数为null
- 调用ajax方法的最佳方式是什么?是否应在单击详细信息按钮时调用此项
Html
<div class="col-md-12">
<table class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Details</th>
</tr>
</thead>
<tbody>
@foreach (var viewModel in Model)
{
<tr>
<td>@viewModel.Name</td>
<td>@viewModel.Age</td>
<td><button data-id="@viewModel.PersonId" type="button" data-bind="click: getPersonId" class="btn btn-success" data-toggle="modal" data-target="#details-modal"><span class="fa fa-external-link-square"></span> Details</button></td>
</tr>
}
</tbody>
</table>
</div>
在HTML底部创建PersonViewModel实例
<script>
$(function () {
window.viewModel = new PersonViewModel().init(@Html.Json(Model));
});
</script>
JavaScript
function PersonViewModel() {
var self = this;
self.init = function(data) {
ko.mapping.fromJS(data, {}, self);
ko.applyBindings(self, $("#tblPerson")[0]);
return self;
}
self.getPersonId = function(vm, ev) {
var personId = $(ev.target).data('id');
return personId;
}
self.getPersonEntity = function() {
$.ajax({
type: "POST",
url: '/Person/RetrievePersonEntity',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: ko.toJSON(self.getPersonId),
success: function() {} // not sure what I need here...
});
}
}
C#控制器
[HttpPost]
public JsonResult RetrievePersonEntity(string personId)
{
var result = _personOrchestrator.RetrievePersonEntity(personId);
return Json(result);
}
试试这个:
self.getPersonEntity = function() {
$.ajax({
type: "POST",
url: '/Person/RetrievePersonEntity?personId=' + self.getPersonId(vm, ev),
data: ko.toJSON(self.getPersonId),
success: function() {
return self.getPersonId
}
});
}
你可以试试这个
self.getPersonEntity = function() {
$.ajax({
type: "POST",
url: '/Person/RetrievePersonEntity' ,
data: {personId:self.getPersonId(vm, ev)},
success: function() {
return self.getPersonId
}
});
}
相关文章:
- 从JavaScript调用JAX-WSWeb服务时参数为Null
- ajax post在webapi中传递null参数
- Javascript-函数获取数组元素参数未定义/为null
- Ajax调用后控制器中的参数为Null
- 未能构造'Blob':提供的第一个参数为null,或者是无效的Array对象
- 当 JSON.stringify 时,ASP.NET MVC 控制器参数的 JSON 为 null
- fn.apply 与第一个参数 null 或未定义
- Function.prototype.bind with null 作为参数
- JavaScript null 参数使正则表达式匹配
- 在匿名回调中使用函数参数将返回 null/NaN
- Web API 控制器操作参数始终为 null
- javascript 返回 null 或 None 如果参数没有给函数
- 尝试将 Blob 传递给 C# 控制器时的 null 参数
- 使用AngularJS传递参数时,Resteasy@FormParam为null
- 为什么当中间参数为'null'
- Coffeescription出现奇怪问题-文本参数发送为null
- Angular$http发布到MVC操作,参数为null
- jQuery数据表-ASP.NET控制器参数始终为null
- MVC控制器'发布JSON数据时,s字符串[]参数为null
- Angular&ASP.NET MVC-当后端接收到参数时,该参数为null