我正在设计一个asp.net菜单,我正在尝试理解StaticSelectedStyle-CssClass和StaticHoverStyle-CssClass参数的含义.
我的理解是,在需要时,使用这些参数定义的样式将作为CSS类应用于相关元素.所以我创建了如下菜单:
<asp:Menu ID="NavigationMenu" DataSourceID="NavigationSiteMapDataSource"
StaticMenuStyle-CssClass="StaticMenuStyle"
StaticMenuItemStyle-CssClass="StaticMenuItemStyle"
StaticSelectedStyle-CssClass="StaticSelectedStyle"
StaticHoverStyle-CssClass="StaticHoverStyle"
Orientation="Horizontal"
MaximumDynamicDisplayLevels="0"
runat="server">
</asp:Menu>
Run Code Online (Sandbox Code Playgroud)
它适用于StaticMenuStyle-CssClass和StaticMenuStyle-CssClass(类应用于相关元素),但不应用StaticSelectedStyle-CssClass和StaticHoverStyle-CssClass,无论元素的选定状态或悬停状态如何.
我应该做些什么来完成这项工作?
谢谢.
编辑:对不起我应该提到这是.NET 4.这是生成的HTML:
<div id="NavigationMenu">
<ul class="level1 StaticMenuStyle">
<li><a class="level1 StaticMenuItemStyle selected" href="/Link.aspx">Link</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
如您所见,应用StaticMenuStyle和StaticMenuItemStyle,但不应用StaticSelectedStyle-CssClass或StaticHoverStyle-CssClass.不知道为什么.我知道我可以使用selected但不是StaticSelectedStyle-CssClass应用的预期行为??? 通过使用选择我做出的假设,知道.NET在幕后做了什么,这是不对的.
我有多个分支,我想将远程更改合并到一个不是我当前分支的分支.
例如:
git merge remote/branch some-other-branch
Run Code Online (Sandbox Code Playgroud) 我有一个UserControl,它使用UserControl,以及其他控件.
在ascx文件中我有以下代码:
<%@ Register TagPrefix="tag" Namespace="some.name.space" Assembly="some.assembly" %>
<tag:control ID="test" runat="server" />
Run Code Online (Sandbox Code Playgroud)
在我的Page_Load方法中,我尝试在测试中设置属性,如下所示:
test.Text = "Hello World!";
Run Code Online (Sandbox Code Playgroud)
这实际上在我的用户控件中设置了文字控件的Text属性test.
这引发了一个异常:
你调用的对象是空的
当它试图设置
lblTest.Text = value;
Run Code Online (Sandbox Code Playgroud)
null为的对象是lblTest.
我没有正确添加用户控件吗?我应该 - 或者我必须 - Src在注册标签时指定属性吗?如果是这样,我必须注册我使用的每个用户控件?
这也导致usercontrol中没有控件加载,并且usercontrol中的所有控件都为null.
假设我有一个简单的模型来解释目的:
public class Category
{
...
public IEnumerable<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
视图:
@model Category
...
<ul>
@Html.EditorFor(m => m.Products)
</ul>
Run Code Online (Sandbox Code Playgroud)
EditorTemplate:
@model Product
...
<li>
@Html.EditorFor(m => m.Name)
</li>
Run Code Online (Sandbox Code Playgroud)
请注意,我不必定义EditorTemplate IEnumerable<Product>,我只能为Product模型创建它,而MVC框架足够聪明,可以使用自己的IEnumerable模板.它遍历我的集合并调用我的EditorTemplate.
输出html将是这样的
...
<li>
<input id="Products_i_Name" name="Products[i].Name" type="text" value="SomeName">
</li>
Run Code Online (Sandbox Code Playgroud)
毕竟,我可以发布到我的控制器.
但是,当我使用模板名称定义EditorTemplate时,为什么MVC没有做到这一点?
@Html.EditorFor(m => m.Products, "ProductTemplate")
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我必须更改属性的类型,IList<Product>自己遍历集合并调用EditorTemplate
@for (int i = 0; i < Model.Products.Count; i++)
{
@Html.EditorFor(m => m.Products[i], "ProductTemplate")
}
Run Code Online (Sandbox Code Playgroud)
这似乎是一种肮脏的解决方法给我.这样做是否还有其他更清洁的解决方案?
拼图:
我在Visual Studio中运行的解决方案可以使用IISExpress按预期运行和运行.
要设置我的网站以使用IIS,我尝试了以下步骤:
此时,我收到一个HTTP 500.21错误.
我也尝试aspnet_regiis.exe -i使用Visual Studio的命令提示符(作为管理员)运行,但每次运行该命令时,我都会收到以下错误:
命令'aspnet_regiis.exe'无效.
我还确认我确实aspnet_regiis.exe安装了(通过在此处查看)(.NET Framework版本4(64位系统)).
在IIS 7.5中注册.NET Framework 4.5需要做什么?
iis-7.5 windows-7-x64 asp.net-mvc-4 asp.net-4.5 visual-studio-2013
我正在阅读本周末的ASP.net MVP模式,看起来即使是最简单的任务也需要花费太多精力,如果在MVP模式中付出似乎是在更大的项目,但我想我是不是要跟随MVP.为什么不在ASP.net MVC中执行该项目?
我正在考虑MVP模式的原因是因为我已经注意到在我的所有ASP.net Webform项目中,如果我在Web上有很多服务器控件,那么代码背后会有大量代码用于事件处理形式所以我正在寻找减少这种情况的方法并遇到MVP模式.
是否值得努力遵循MVP模式或只是切换到ASP.net MVC?
如果我有一个返回a的查询DateTime,那么它的值是FirstOrDefault()多少?是否有通用的方法来获取C#标量的默认值?例:
var list = (from item in db.Items
where item.ID==1234
select item.StartDate).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
编辑:假设列StartDate不能为空.
我有一个相当奇怪的问题.我住在丹麦,这里2013年的第一周(第1周)开始于2012年12月31日,持续7天 - 几周通常做:)
据.NET称,12月30日是第52周,第31周是第53周,1月1日是第1周.
第53周仅持续一天,第1周持续6天.显然,这一定是错误的(一周不到7天),在丹麦语中肯定是错误的.12月31日是第1周,而不是第53周.
以下代码说明了问题(CurrentCulture是"da-DK")
static void Main(string[] args)
{
//Here I get Monday
DayOfWeek firstDayOfWeek = DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek;
//Here I get FirstFourDayWeek
CalendarWeekRule weekRule = DateTimeFormatInfo.CurrentInfo.CalendarWeekRule;
DateTime date = new DateTime(2012,12,30);
for (int i = 0; i <= 10; i++)
{
DateTime currentDate = date.AddDays(i);
Console.WriteLine("Date: {0} WeekNumber: {1}",
currentDate.ToShortDateString(),
CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(currentDate, weekRule, firstDayOfWeek));
}
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么或者这是.NET中的错误?如果是后者 - 您是否有正确计算周数的建议?
我有以下表结构:
Id, Message
1, John Doe
2, Jane Smith
3, Error
4, Jane Smith
Run Code Online (Sandbox Code Playgroud)
有没有办法获取错误记录和周围的记录?即查找所有错误以及它们之前和之后的记录.