【问题标题】:Could not pass value from ajax.beginform to controller's method无法将值从 ajax.beginform 传递给控制器​​的方法
【发布时间】:2012-08-08 15:26:49
【问题描述】:

查看:

@using (Ajax.BeginForm("EditP", "P",new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "POST", UpdateTargetId = "divReplace" }))
{     
    @Html.HiddenFor(model => model.Req,new {@id="req"});   
}

控制器:

[HttpPost]
public PartialViewResult EditP(long requestSequence,FormCollection form)
{  
    ...........
}

我可以看到Model.req 的值为 234,但当它到达控制器时显示为 0。

至少当我使用form.Get("req") 收集值时,这也显示为0。

请帮忙。

【问题讨论】:

  • 要改进格式,请尝试在[HttpPost] 和函数之前添加四个空格,而不是使用“`”。

标签: c# asp.net-mvc asp.net-mvc-3 razor


【解决方案1】:

我相信如果您只是将控制器代码更改为:

[HttpPost]
public PartialViewResult EditSCP(long Req,FormCollection form)
{  
    ...........
}

那么变量 Req 就会有你想要的值。

希望这会有所帮助。

【讨论】:

  • 事实上,我的模型是这样的:public partial class MyModel : Request { public long id{get; set;} } 其中“请求”模型中有 Req 属性。延迟加载会造成问题。
【解决方案2】:

我猜,这里的模型有问题,你的模型应该有get; & set; 这样的...

public class MyModel
{
 public long Req {get; set;}    
}

【讨论】:

  • 事实上,我的模型是这样的:public partial class MyModel : Request { public long id{get; set;} } 其中“请求”模型中有 Req 属性。延迟加载会造成问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 2017-01-18
  • 2013-11-14
相关资源
最近更新 更多