我是MVC的新手所以我正在努力解决问题的标题 - 不确定是否有任何事情已经覆盖了我想要做的事情。
假设我有一个控制器:FooController。它处理一组视图,所有视图都执行相同的基本操作,但出于各种原因使用不同的模型。所以我为每个模型创建了一个动作,这很有效:
[HttpPost]
public ActionResult Bar(Type1 t);
[HttpPost]
public ActionResult Bar(Type2 t);
等...
我想要完成的(如果可能的话)是创建一个可以接受来自第三方网站的POST的动作(除了本地的打字视图),我似乎无法弄清楚如何接受没有MVC的数据抛出异常:
控制器类型'FooController'上当前的操作请求'Bar'在以下操作方法之间不明确:
它列出了上述行为。
我尝试了几件事:
任何想法如何让这个工作?
编辑:路线示例
/ Foo / Bar / Type1
/ Foo / Bar / Type2
/富/酒吧/ ExternalSite
答案 0 :(得分:0)
我不认为
[HttpPost]
public ActionResult Bar(Type1 t);
[HttpPost]
public ActionResult Bar(Type2 t);
可以工作,即使它来自同一个网站。除非使用不同的Http谓词([HttpGet],[HttpPost]
等),否则不能有两个具有相同名称的操作。
最好的方法是为外部网站创建一个具有不同名称的操作,将传入的信息转换为Type1
,然后重定向到Bar(Type1 t)
。有关您可以重定向和保留复杂对象的不同方法,请参阅ASP.NET MVC Redirect with model。