【问题标题】:URL route configuration cannot deal with periods in urlURL路由配置无法处理url中的句点
【发布时间】:2014-03-10 11:14:51
【问题描述】:

我创建了一个链接到使用 ADO.NET 向导创建的模型文件的 mvc 控制器。 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" />

没有解决问题。

如何解决这个问题?

我觉得我可以截取参数并将点换成其他东西,直到它到达我恢复更改的方法。不过不知道该怎么做。

【问题讨论】:

  • 异常信息是什么??
  • 我上面写的The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.,是404
  • 与任何实体无关
  • 哦,也许我说错了,不是实体框架,而是 MVC 路由配置的问题,因为 id 列内容格式

标签: c# asp.net routes asp.net-mvc-5


【解决方案1】:

目前我的解决方案是这样的:

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

仍然认为有更好的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 2023-03-27
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多