【发布时间】:2015-10-15 18:38:10
【问题描述】:
在来自 Angular 控制器的 Ajax 调用中,我将一个复杂对象作为数据传递。在 MVC 控制器对象上具有所有空值。 我有如下给出的 MVC 视图,这将是注册客户视图的样板。
<div data-ng-app="customer" id="customer" data-ng-controller="rootViewModel">
<h2>{{ pageHeading }}</h2>
<hr />
<form id="formElement">
<div ng-view></div>
</form>
使用 AngularJS,我将加载注册客户视图,下面给出注册客户视图的标记。我使用ng-click 指令注册了绑定到按钮的客户功能。
<fieldset class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-3">Company Name</label>
<div class="col-sm-4">
<input class="form-control inputfieldValidation" ng-model="customer.Name" type="text" placeholder="Full company name" required autofocus />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">PAN</label>
<div class="col-sm-4">
<input class="form-control" ng-model="customer.Pan" type="text">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">TIN</label>
<div class="col-sm-4">
<input class="form-control inputfieldValidation" ng-model="customer.Tin" type="text" required />
</div>
</div>
<button class="btn btn-primary proceedNext" id="registerCompany" ng-click="registerCompany(customer)">Register Customer</button>
</fieldset>
我有角度控制器,它有一个名为registerCustomer() 的函数,将在点击注册客户时调用。我在该函数中有一个 ajax 调用,如下所示。
customerModule.controller("CustomerRegistration", function ($scope) {
var initialize = function () {
}
$scope.registerCompany = function (customer) {
$.ajax({
url: 'Home/RegisterCompany',//make sure url exist
data: JSON.stringify({company: customer}),//pass data to action
type:'POST',
success: function (data) {
alert(JSON.stringify(data));
//window.location.href = '@Url.Action("Order")'; //redirect
}
});
}
initialize();
});
在 MVC 上,我有一个名为 Company 的模型,如下所示。
public class Company
{
public string Name;
public string Pan;
public string Tin;
}
我的 MVC 控制器看起来像
[HttpPost]
public JsonResult RegisterCompany(Company company)
{
//Do something
return null;
}
在 MVC 控制器上总是有空对象,如果缺少任何东西,请帮助我。提前致谢
【问题讨论】:
-
不建议将 Angular 与 jquery ajax 混合使用。如果我没记错的话,MVC 支持的默认内容类型不是 JSON,它是 x-www-form-urlencoded 所以这个代码失败的另一个原因
-
此链接可能对您有所帮助stackoverflow.com/questions/20384242/…
标签: javascript html angularjs asp.net-mvc asp.net-mvc-4