URL路由配置不能处理URL中的句号

本文关键字:URL 处理 路由 配置 不能 | 更新日期: 2023-09-27 17:49:20

我创建了一个mvc控制器,该控制器链接到ADO创建的模型文件。净向导。id列不是填充一些正常的值,比如整数或guid,而是可以有句号的字符串。自动生成的编辑功能被搞砸了,因为路由引擎将id中的字符作为配置,并抛出一个异常:

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

编辑动作格式为:

// GET: .../Edit/5
public ActionResult Edit(string id)
{
//my code
}

和当url不包含任何指定字符(如:/Edit/2982-4-112A),然后一切工作得很好,但当它包含句号(如:/Edit/125-2-10.5)的例外。

我已经尝试添加web.config

<httpRuntime relaxedUrlToFileSystemMapping="true" />

没有解决问题。

如何解决这个问题?

我觉得我可以截取参数并将点交换为其他东西,直到它到达方法,然后我恢复更改。但我不知道怎么做

URL路由配置不能处理URL中的句号

目前我的解决方案是:

在需要生成链接的地方,我执行String.Replace('.','|'),然后再次执行String.Replace('|','.')

还是觉得有更好的办法