繁体   English   中英

在ASP.NET MVC中按优先级返回表单,查询字符串,cookie值

[英]Returning form, querystring, cookie values by priority in ASP.NET MVC

我想知道为什么从用户请求中获取值时首选查询字符串。 哪里? 1)System.Web.Mvc.DefaultModelBinder的代码如下所示(仅一部分):

HttpRequestBase request = controllerContext.HttpContext.Request;
    if (request != null)
    {
        if (request.QueryString != null)
        {
            values = request.QueryString.GetValues(modelName);
            attemptedValue = request.QueryString[modelName];
        }
        if ((values == null) && (request.Form != null))
        {
            invariantCulture = CultureInfo.CurrentCulture;
            values = request.Form.GetValues(modelName);
            attemptedValue = request.Form[modelName];
        }
    }

2)如果我在控制器中有此签名的方法:

public ActionResult Save(int? x, string y) {...

参数(x,y)绑定到查询字符串而不是表单的值。 我希望Request.From的值具有比Request.QueryString高的优先级。

编辑:我看到第二种情况是由第一种情况(DefaultModelBinder)引起的,对吗?

背后的动机是什么?

一致性。

自原始ASP模型以来,查询字符串一直是默认字符串。 如果要获取数据,那么如果查询字符串上也有相同的名称,则始终需要从那里显式地获取值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM