Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 MVC 5 Ajax.BeginForm POST未绑定到conroller中的模型_Asp.net Mvc 5_Ajax.beginform - Fatal编程技术网

Asp.net mvc 5 MVC 5 Ajax.BeginForm POST未绑定到conroller中的模型

Asp.net mvc 5 MVC 5 Ajax.BeginForm POST未绑定到conroller中的模型,asp.net-mvc-5,ajax.beginform,Asp.net Mvc 5,Ajax.beginform,抱歉,这里的代码太多了,但这是最好的解释方法;发生了什么事 我在MVC 5部分视图中给出了以下代码: @model Hide.MVC.MFC.Models.RequestDataModel 使用(Ajax.BeginForm(“RequestSetCanceledState”、“Home”、null、, 新选择 { HttpMethod=“POST”, InsertionMode=InsertionMode.Replace, UpdateTargetId=“请求信息”, OnBegin=“Aja

抱歉,这里的代码太多了,但这是最好的解释方法;发生了什么事

我在MVC 5部分视图中给出了以下代码:

@model Hide.MVC.MFC.Models.RequestDataModel
使用(Ajax.BeginForm(“RequestSetCanceledState”、“Home”、null、,
新选择
{
HttpMethod=“POST”,
InsertionMode=InsertionMode.Replace,
UpdateTargetId=“请求信息”,
OnBegin=“AjaxAbsoluteLoaderOn”,
OnComplete=“AjaxAbsoluteLoaderOff”
},新的{id=“formCancel”})
{   
@DropDownListFor(m=>m.CancelReason,新选择列表(Model.CancelReasons,“Id”,“Name”,Model.CancelReason),String.Empty)
@Html.TextBoxFor(m=>m.Reason)
@Html.HiddenFor(m=>m.RequestId)
}
我的控制器操作如下:

[HttpPost]
公共PartialViewResult RequestSetCanceledState(RequestDataModel模型)
{
...
返回部分视图(“..”,模型);
}
我的模型如下:

公共类RequestDataModel
{   
public RequestDataModel(){}
公共RequestDataModel(int requestId)
{
this.RequestId=RequestId;
使用(var service=new InnerServiceClient())
{
var-request=service.GetRequest(requestId);
this.State=request.ServiceState;
if(request.PremiseInformationId.HasValue)
{
this.PremisInformation=service.GetExistingData(requestId)??新建PremiseInformationBL();
}
}
}
public int RequestId{get;set;}
公共int状态{get;set;}
公共前提信息BL前提信息{get;set;}
公共int?取消原因{get;set;}
公共字符串原因{get;set;}
公开名单取消原因
{
得到
{
使用(var service=new DictionaryServiceClient())
{
return service.GetShortList(TypeDictionary.MFCCancelReason.ToList();
}
}
}
}
代码不会发送到RequestSetCanceledState方法,并且浏览器会发送消息

CancelReason=1&Reason=123&RequestId=48&X-Requested-With=XMLHttpRequest

但是模型总是空的。另外,如果我使用GET请求,则模型不是空的!我试图从模型中删除PremisInformation和CancelReasons,但没有帮助。有人能告诉我为什么会这样吗?

是否包含jquery.unobtrusive-ajax.js文件???很遗憾,控制台中没有错误。控制器返回一个没有问题的PartialView那么问题出在哪里…??POST请求不会将数据绑定到conroller中的模型。此时,
public PartialViewResult RequestSetCanceledState(RequestDataModel模型)
model为空