我创建了一个mvc控制器,它链接到使用ADO.NET向导创建的模型文件。 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" />
没有解决问题。
如何解决这个问题?
我觉得我可以拦截参数并将点交换为其他内容,直到它到达方法,此时我还原了更改。不过不知道怎么做。
答案 0 :(得分:0)
目前我的解决方案是:
在需要生成链接的位置我执行String.Replace('.','|')
,然后在调用操作后再次String.Replace('|','.')
。
仍然认为有更好的方法。