我希望网址比/ {Controller}/{Action}/{Id}更短.
例如,我想{Controller}/{Id},其中{Id}是一个字符串.
这将允许简单的路径,例如用户/用户名,页面/页面名称,新闻/新闻名称.我比在URL(用户/详细信息/用户名)中要求/ Details操作更好,这对最终用户来说不那么优雅.
我可以通过为任何我想要这种简单程度的控制器设置自定义路由来轻松完成这项工作.但是,这会导致实现其他操作时出现麻烦,例如{Controller}/{Action},其中{Action} ='Create',因为在这种情况下,字符串{Action}与字符串{Id}冲突.
我的问题:我怎么能有'保留'字样,所以如果URL是/ News/Create,它被视为一个动作,但如果URL是其他任何东西,例如/ News/A-gorilla-ate-my-论文,然后它被视为Id.
我希望在设置路线时可以定义这个?
使用Ben Griswold的答案,我已将默认的ASP.NET MVC路由更新为:
routes.MapRoute(
"CreateRoute", // route name
"{controller}/Create", // url with parameters
new { action = "Create" } // parameter defaults
);
routes.MapRoute(
"DetailsRoute", // route name
"{controller}/{id}", // url with parameters
new { action = "Details" } // parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults …Run Code Online (Sandbox Code Playgroud) 我有一节课,其中我看到以下内容:
this.logger.severe("");
this.logger.warning("");
this.logger.info("");
Run Code Online (Sandbox Code Playgroud)
我不明白几件事:
我们如何使用之前未定义的方法?我的意思是,课堂上没有定义"记录器"方法.我认为可以定义这些方法,因为所考虑的类是另一个定义了"logger"的类的扩展.但是在类的定义中没有"扩展"语句(只有"实现").
我可以理解这样的事情:"objectName.methodName".但那是什么"objectName.something1.something2"?"something1.something2"是方法的名称?方法名称可以包含点吗?
究竟这些"记录器.*"到底是什么?我认为他们保存了有关代码执行的信息.他们写了关于执行期间发生的事情的报告.但在哪里可以找到这些信息?
添加:
在文件的开头我有:import java.util.logging.Logger;
然后在课堂上我有:private Logger logger = Logger.getLogger("a.b.c.d");
所以,logger是Logger类的一个对象(但是我不明白为什么他们不能使用"new Logger()"以通常的方式实例化类.我也不明白logger.severe("")到底做了什么.
做下一件事最优雅的方法是什么:
int i = oneOrZero;
if (i == 0) {
i = 1;
} else {
i = 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以假设i只能有1或0的值.
我正在寻找eclipse中的自动方式,将花括号重新格式化为K&R风格,如果等,则消除单个语句的大括号.是否有这样的方法?
谢谢.
我有目录A,文件与目录B匹配.目录A可能有其他所需的文件.目录B是一个git仓库.
我想将目录B克隆到目录A但git-clone将不允许我,因为该目录是非空的.
我希望它只能克隆.git,因为所有的文件匹配,我可以从那里去?
我无法克隆到一个空目录,因为我在目录A中的文件不在目录B中,我想保留它们.
复制.git不是一个选项,因为我想要refs推/拉,我不想手动设置它们.
有没有办法做到这一点?
更新:我认为这有效,任何人都可以看到任何问题吗? - >
cd a
git clone --no-hardlinks --no-checkout ../b a.tmp
mv a.tmp/.git .
rm -rf a.tmp
git unstage # apparently git thinks all the files are deleted if you don't do this
Run Code Online (Sandbox Code Playgroud) 当我将我的站点从HostGator移动到专用服务器时,有几件事情被打破,所有内容都被破坏,涉及类型强制.如果$ _POST ['var']为0,则不认为它是整数,并且无法与另一个整数进行比较.
我经历过并在我找到的网站上所有那些破碎的地方强制使用int类型,但我确信还有更多我找不到的地方.我并不熟悉PHP.ini配置,但也许你可以告诉我如何解决这个问题?
谢谢
在表"A"上依赖于30个其他表格通过FK到"A.Id".
对于集成测试,我必须删除表并重新创建它以创建已定义的状态.由于依赖对象,它们似乎无法删除和重新创建表.错误消息是:
无法删除对象'dbo.A',因为它是由FOREIGN KEY约束引用的
问题(S):
我需要从在Firefox中运行的脚本发出跨域请求(它仅用于开发目的).
这可以实现吗?也许修改about:config键?
谢谢!
我有一个对象,球,属于一个女孩,可以有很多球.一切都有效,但如果我尝试通过以下方式打印出女孩的名字:
@balls.each do |b|
b.girl.name
end
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
"undefined method `name' for nil:NilClass"
Run Code Online (Sandbox Code Playgroud)
这让我很困惑.如果我说b.girl.class,我把它作为Girl的一个实例,就好了.也就是说,它不是"NillClass".
不仅如此,如果我只是尝试任何球,并说
@ball.girl.name
Run Code Online (Sandbox Code Playgroud)
我很好.
那些让我搞砸的球的集合是什么?
编辑:
具体来说,这在我看来正在发生.我现在正在测试它是否也发生在控制器中.
我想创建一个Action来自动化GCJ编译.由于我无法使用Ant,我决定尝试使用SBT.文档说明了如何创建Action以及如何运行外部流程.我还没有看到如何重用java和scala编译器Actions存在的目录树遍历.在这种情况下,我的输入文件将是某个根文件夹下的所有.class文件.我还需要为GCJ指定一个特定的类路径.任何指针也将受到赞赏.
java ×3
algorithm ×1
asp.net ×1
belongs-to ×1
coding-style ×1
cross-domain ×1
eclipse ×1
firefox ×1
gcj ×1
git ×1
javascript ×1
logging ×1
methods ×1
oop ×1
php ×1
ruby ×1
sbt ×1
scala ×1
sql-server ×1
t-sql ×1