我正在寻找一种旨在减少ASP.NET应用程序中硬编码的URL数量的最佳实践解决方案.
例如,在查看产品详细信息屏幕,对这些详细信息执行编辑,然后提交更改时,用户将被重定向回产品列表屏幕.而不是编码以下内容:
Response.Redirect("~/products/list.aspx?category=books");
Run Code Online (Sandbox Code Playgroud)
我想有一个解决方案,允许我做这样的事情:
Pages.GotoProductList("books");
Run Code Online (Sandbox Code Playgroud)
where Pages是公共基类的成员.
我只是在这里吐痰,并且很想听到任何人管理他们的应用程序重定向的任何其他方式.
编辑
我最终创建了以下解决方案:我已经有了一个公共基类,我添加了一个Pages枚举(感谢Mark),每个项目都有一个System.ComponentModel.DescriptionAttribute包含页面URL 的属性:
public enum Pages
{
[Description("~/secure/default.aspx")]
Landing,
[Description("~/secure/modelling/default.aspx")]
ModellingHome,
[Description("~/secure/reports/default.aspx")]
ReportsHome,
[Description("~/error.aspx")]
Error
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一些重载方法来处理不同的场景.我使用反射通过它的Description属性获取页面的URL ,并将查询字符串参数作为匿名类型传递(也使用反射将每个属性添加为查询字符串参数):
private string GetEnumDescription(Enum value)
{
Type type = value.GetType();
string name = Enum.GetName(type, value);
if (name != null)
{
FieldInfo field = type.GetField(name);
if (field != null)
{
DescriptionAttribute attr = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attr != null)
return attr.Description;
}
}
return null;
}
protected string GetPageUrl(Enums.Pages …Run Code Online (Sandbox Code Playgroud) GWT没有正确地序列化Java Date.当我尝试通过电汇发送在Javascript中创建的日期时,我发现在1983年之前的4月1日(有趣)和10月25日之间的日期减去了一天.
这意味着,例如,1982-04-01和1982-03-31都在Java方面成为1982-03-31.
鉴于有问题的日期,我猜这是某种DST问题.我试过谷歌搜索,发现只有一个其他参考描述类似的问题.
我也试过向GWT团队提交bug,但奇怪的是没能找到GWT的bugtracker.
所以,我的问题是:
其他人遇到这个?我正在使用GWT 1.7,并且想确认这是否也发生在2.0上.
我的解决方法是将日期作为字符串发送,并在服务器上解析它们.谁知道更好的解决方法?
我有一个BackgroundWorker对象,我实例化后,在后台线程上异步执行数据库进程.我有DoWork和的事件处理程序RunWorkerCompleted.
我可以说它BackgroundWorker是处理自己,因为我MessageBox在Disposed事件处理程序中添加了一个.
我的问题是:
是否有必要分离事件处理程序以确保清理内存并且没有内存泄漏?
假设我有一个ASP.NET文本框如下:
<asp:TextBox ID="txtQuantity" runat="server" Text="0"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
我想在javascript中获取此框的当前值.我该如何访问这个元素?
我目前正在使用多个查询字符串参数将一些数据从一个页面传递到第二个页面(参数保存确认/错误消息显示在第二页中),由于第三方产品无法再正常工作生产环境.用户在第一页上完成操作,然后转移到第二页.使用哪些可能的替代方法而不是查询字符串和GET - 会话变量,POST数据或完全不同的东西?
谢谢,MagicAndi.
鉴于这些条件(我知道他们的意思/做法):
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
Run Code Online (Sandbox Code Playgroud)
什么是第一法则呢?什么是孤独的冲刺?
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
我一直在使用它已经有一段时间与Zend Framework结合使用,但我从来没有真正得到第一条规则的确切做法.
我想从表中删除某些记录.这些记录在其他表中有一些子记录.
为了能够删除主记录,我必须先删除子记录.
以下是使用的HQL示例:
delete from ItineraryBooking ib where ib.booking.user.id = :paramId
Run Code Online (Sandbox Code Playgroud)
基本上,这应该删除所有ItineraryBookings(单独表中的记录),这些都加入到Booking表中.可以使用User表连接Booking表.
奇怪的是,当您将上述内容更改为:
from ItineraryBooking ib where ib.booking.user.id = :paramId
Run Code Online (Sandbox Code Playgroud)
并执行Query.list(),它会正常工作.
每当我想执行delete变体时,看起来Hibernate会生成一个奇怪的删除语句.我的HQL错了吗?还是Hibernate的怪癖?
在 Postgres 中识别和删除无效对象的可用选项有哪些
我想知道一个'正常'的内部连接是否会导致MySQL查询中的执行性能更高,而不是简单的查询,其中列出所有表,然后使用'和t1.t2id = t2.id'等连接它们.
asp.net ×3
c# ×2
.net ×1
date ×1
datetime ×1
get ×1
gwt ×1
hibernate ×1
hql ×1
java ×1
javascript ×1
join ×1
mod-rewrite ×1
mysql ×1
performance ×1
postgresql ×1
query-string ×1
url ×1
vb.net ×1
winforms ×1