MVC 模型绑定:使用与方法参数的查询字符串不同的名称

发布于 2024-08-05 13:49:22 字数 592 浏览 5 评论 0原文

给定一个网址:

http://www.stackoverflow.com/question询问=123&答案=5

及其对应的 ActionMethod 和 Model:

public ActionResult Question(RequestObject request)
{
   return View("Question", request);
}

public class RequestObject
{
   public string AskId
   {
      get;
      set;
   }

   public string NumberOfAnswers
   {
      get;
      set;
   }
}

注意 QueryString 和 RequestObject 的参数是不同的。我可以使用默认的绑定行为来实现这一点吗?我需要创建自定义活页夹吗?

谢谢!

Given a URL:

http://www.stackoverflow.com/question?ask=123&answers=5

and its corresponding ActionMethod and Model:

public ActionResult Question(RequestObject request)
{
   return View("Question", request);
}

public class RequestObject
{
   public string AskId
   {
      get;
      set;
   }

   public string NumberOfAnswers
   {
      get;
      set;
   }
}

Notice that the QueryString and the parameters of the RequestObject are different. Can I achieve that with the default binding behavior? Do I need to create a custom binder?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

彡翼 2024-08-12 13:49:22

听起来自定义模型活页夹就是您想要的。 Scott Hanselman 在此处提供了一个实现自定义绑定器的好示例

It sounds like a custom model binder is what you want. Scott Hanselman has a good example of implementing custom binders here

听风念你 2024-08-12 13:49:22

您可以使用显式对象初始化:

public ActionResult Question(string ask, string answers)
{
    return View("Question", new RequestObject
    {
        AskId = ask,
        NumberOfAnswers = answers
    });
}

You could use explicit object initialization:

public ActionResult Question(string ask, string answers)
{
    return View("Question", new RequestObject
    {
        AskId = ask,
        NumberOfAnswers = answers
    });
}
世界等同你 2024-08-12 13:49:22

覆盖 DefaultModelBinder。特别是它的 BindProperty 方法。

Override DefaultModelBinder. Particularily, its BindProperty method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文