首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC ActionMethod找不到传入的值

MVC ActionMethod找不到传入的值
EN

Stack Overflow用户
提问于 2009-10-19 15:14:11
回答 3查看 131关注 0票数 0

我有一个Create ActionMethod,类似于:

代码语言:javascript
复制
[AcceptVerbs(HttpVerbs.Post)]
public ActionMethod Create(Journey journey)
{
  if (Request.IsAjaxRequest())
  {
    //Save values
    return Json(new { JourneyID = journey.JourneyID } );
  }
}

我传入的Journey对象来自我的LINQ2SQL数据模型。我使用JQuery.Post函数从我的Javascript调用上面的ActionMethod,如下所示:

代码语言:javascript
复制
var journeyData = {
    CustomerID: $('#CustomerID').val(),
    JourneyID: $('#JourneyID').val(),
    EstimatedTravelTime: $('#EstimatedTravelTime').val(),
    RouteName: $('#RouteName').val(),
    .....
};

$.post('/Journey/Create',
  journeyData,
  function(jsonResult) {
    //deal with result
  },
  'json'
);

我遇到的问题是,在ActionMethod中,Journey.RouteName总是作为null返回,但我传递回的JSON有一个值,我使用以下命令进行检查

代码语言:javascript
复制
alert(JSON.stringify(journeyData));

并且在生成的JSON对象中,RouteName具有一个值,例如“去工作吧”。你知道为什么这不是在ActionMethod中设置的吗?我传回的所有其他值都设置得很好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-19 16:17:29

这只是一个试错建议:

我要做的第一件事是用一些不同的东西来重命名"RouteName“参数,因为"RouteName”也是一些MVC重定向方法的属性。

票数 2
EN

Stack Overflow用户

发布于 2009-10-19 15:19:27

您是否检查了要发送到服务器的请求JSON对象?

您是否尝试过在字符串属性值中添加引号?

如下所示:

代码语言:javascript
复制
var journeyData = {
    CustomerID: $('#CustomerID').val(),
    JourneyID: $('#JourneyID').val(),
    EstimatedTravelTime: $('#EstimatedTravelTime').val(),
    RouteName: '"' + $('#RouteName').val() + '"',
    .....
};
票数 0
EN

Stack Overflow用户

发布于 2009-10-19 23:16:54

有几件事需要考虑。我猜这已经存在了,但是您的模型必须在RouteName属性上有一个getter和setter才能被正确绑定。另一种想法是,您可能没有建立强绑定。这通常是作为视图的页面声明的一部分(例如Inherits="System.Web.Mvc.ViewPage"),但我不确定这是在你的帖子之前发生的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1589272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档