模式迭代请求参数

NOO*_*Bie 3 c# asp.net asp.net-mvc asp.net-mvc-2

我的视图不是强类型视图,我需要在控制器操作中迭代Request Params来确定发布的值.

有没有更好的方法来遍历nameValueCollection AllKeys?

我目前正在循环请求参数并适当地设置值.

 foreach (var key in Request.Params.AllKeys)
 { 
     if (key.Equals("CustomerId"))
        queryObject.CustomerId = Request.Params[key];
     else if (key.Equals("OrderId"))
       queryObject.OrderId= Request.Params[key];
     //and so on
 }
Run Code Online (Sandbox Code Playgroud)

我在这段代码中看到了相当多的重复.有没有更好的方法来处理这个?

dtb*_*dtb 6

也许是这样的?

queryObject.CustomerId = Request.Params["CustomerId"];
queryObject.OrderId = Request.Params["OrderId"];
Run Code Online (Sandbox Code Playgroud)


ArB*_*rBR 6

因为NameValueCollection不提供搜索方法,只是通过澄清您的代码,您可以执行以下操作:

 foreach (var key in Request.Params.AllKeys)
 { 
      queryObject.CustomerId = key.Equals("CustomerId") ? Request.Params[key] : queryObject.CustomerId;
      queryObject.OrderId = key.Equals("OrderId") ? Request.Params[key] : queryObject.OrderId;
     //and so on ...
 }
Run Code Online (Sandbox Code Playgroud)