关于ASP.NET MVC 一个小问题

[复制链接]
查看11 | 回复9 | 2021-1-27 07:20:00 | 显示全部楼层 |阅读模式
在HelloWorldController中定义了一个

运行效果如下

当加入这个就报错







求大神解决
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
方法指向不明确,方法名称一致。
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
这样这不是一种多态吗?为什么会报错?
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
C#语法支持,因为C#编译器可以通过参数名判断要调用哪个方法。
但是
MVC路由不能判断你到底要调用哪个方法。
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
mvc没有方法的重载一说。
不过你可以改成
[httpget]
publicactionwelcome
[httppost]
publicactionwelcome
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
httppost需要带参来区别
[httppost]
publicactionwelcome(参数)
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
你可以把你的第二个方法改成类似下面形式,然后用你的URL调用
publicstringTest(int?id,stringname)
{
returnstring.Format("ID:{0}name:{1}",id,name);
}
MVC的默认参数名称为ID,是在routeconfig.cs中定义的
routes.MapRoute(
"Item",
"{controller}/{id}",

回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
这个是你设置路由就行了
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
函数才有多态,这是控制器里面的方法,自成一体的东西,不是一回事
回复

使用道具 举报

千问 | 2021-1-27 07:20:00 | 显示全部楼层
控制器里面的方法最好不要重名,除非用httpget和httppost区分。
重载是指函数的重载,并不是指Controller里面的Action重载。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行