相关疑难解决方法(0)

路径部分中带有//的URL是否有效?

我有一个关于网址的问题:

我已经阅读了RFC 3986,但仍然有一个关于一个URL的问题:

如果URI包含权限组件,则路径组件
必须为空或以斜杠("/")字符开头.如果URI不包含权限组件,则路径不能
以两个斜杠字符("//")开头.此外,URI引用
(第4.1节)可以是相对路径引用,在这种情况下,
第一个路径段不能包含冒号(":")字符.ABNF
需要五个单独的规则来消除这些情况的歧义,其中只有一个与给定URI引用中的路径子字符串匹配.我们使用通用术语"路径组件"来描述
解析器与其中一个规则匹配的URI子字符串.

我知道,这//server.com:80/path/info是有效的(它是一个架构相对URL)

我也知道这http://server.com:80/path//info是有效的.

但我不确定以下一个是否有效:

http://server.com:80//path/info
Run Code Online (Sandbox Code Playgroud)

我的问题背后的问题是,http://server.com:80//path/info当URI http://server.com:80/path/info由限制创建时,不会发送cookie/path

cookies url http rfc3986 session-cookies

37
推荐指数
1
解决办法
3万
查看次数

具有空值的ASP.NET MVC属性路由

这是EverythingController中动作方法MovieCustomer的粘贴.Viewmodel用于组合两个模型:Customer和Movies,并通过ApplicationDbContext(_context)填充来自数据库的信息.

路由功能成功运行,并在有MovieId和CustomerId值时呈现页面

例如/ Everything/MovieCustomer/1/1

如果一个或两个值为null,我希望页面也加载.到目前为止,两个int参数都是可空的,并且在方法中有一个if语句,如果其中任何一个为null,则将参数更改为1.到目前为止,如果值为null,则浏览器返回404错误.

当一个参数或其中一个参数为空时,如何使页面正常工作?谢谢

[Route("Everything/MovieCustomer/{movieId}/{customerId}")]
public ActionResult MovieCustomer(int? movieId, int? customerId)
{
    var viewmodel = new ComboViewModel
    {
        _Customers = new List<Customer>(),
        _Movies = new List<Movies>(),
        _customer = new Customer(),
        _movie =  new Movies()
    };
    viewmodel._Customers = _context.Customers.ToList();
    viewmodel._Movies = _context.Movies.ToList();

    if (!movieId.HasValue)
        movieId = 1;

    if (!customerId.HasValue)
        customerId = 1;

    viewmodel._customer = viewmodel._Customers.SingleOrDefault(a => a.Id == customerId);
    viewmodel._movie = viewmodel._Movies.SingleOrDefault(a => a.Id == movieId);

    return View(viewmodel);
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc

2
推荐指数
1
解决办法
3467
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

c# ×1

cookies ×1

http ×1

rfc3986 ×1

session-cookies ×1

url ×1