MVC模型绑定:使用与方法参数的QueryString不同的名称

时间:2009-09-28 20:49:09

标签: asp.net-mvc modelbinders

给定一个网址:

  ?

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的参数不同。我可以使用默认绑定行为来实现吗?我是否需要创建自定义活页夹?

谢谢!

3 个答案:

答案 0 :(得分:1)

听起来像是你想要的自定义模型活页夹。 Scott Hanselman有一个很好的例子来实现自定义绑定器here

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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