我有两个具有相同名称但具有不同方法签名的控制器操作。他们是这样的:如何避免两个控制器操作之间的AmbiguousMatchException?
//
// GET: /Stationery/5?asHtml=true
[AcceptVerbs(HttpVerbs.Get)]
public ContentResult Show(int id, bool asHtml)
{
if (!asHtml)
RedirectToAction("Show", id);
var result = Stationery.Load(id);
return Content(result.GetHtml());
}
//
// GET: /Stationery/5
[AcceptVerbs(HttpVerbs.Get)]
public XmlResult Show(int id)
{
var result = Stationery.Load(id);
return new XmlResult(result);
}
我的单元测试与调用一个或其他控制器的动作没有问题,但我的测试html页面抛出一个System.Reflection.AmbiguousMatchException。
<a href="/Stationery/1?asHtml=true">Show the stationery Html</a>
<a href="/Stationery/1">Show the stationery</a>
什么需要改变,使这项工作?
我原本有这样的事情,但我不想改变我的所有单元测试,以将ActionResult转换为适当的类型(以及将null添加到签名中)。但是,这可能是最好的方式,因为我不关心其他选项。答案+1 – 2009-04-09 12:30:10