我的调试和发布web.config应用程序设置未正确读取.
Web.config文件:
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
Web.Debug.config
<appSettings>
<add key="ErrorEmailAddress" value="developerEmail@email.com" />
<add key="TestModeEmailAddress" value="developerEmail@email.com" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
Web.Release.config
<appSettings>
<add key="ErrorEmailAddress" value="prodErrorEmail@email.com" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
但是,致电:
WebConfigurationManager.AppSettings["ErrorEmailAddress"]
Run Code Online (Sandbox Code Playgroud)
返回null(调试时).
我试过添加xdt:Transform ="Insert"例如
<add key="ErrorEmailAddress" value="prodErroEmail@email.com" xdt:Transform="Insert" />
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在将我的应用程序从asp.net mvc迁移到mvc版本2,并且遇到以下问题.
我有每个页面中包含的分页链接<< <> >>.像这样:
<% Html.RenderPartial("PagingControl", Model); %>
Run Code Online (Sandbox Code Playgroud)
它们存在于ascx文件中,如下所示.
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BankingDB.Controllers.Utility.IPagedSortedObject>" %>
<div class="paging">
<div class="previous-paging">
<!- error!! -><%= Model.HasPreviousPage ? Html.ActionLink("<<", "Index", Model.buildParams(1)) : "<<"%>
<%= Model.HasPreviousPage ? Html.ActionLink("<", "Index", Model.buildParams(Model.PreviousPageIndex)) : "<"%>
</div>
<div class="paging-details">
Showing records <%= Model.BaseRecordIndex %> to <%= Model.MaxRecordIndex %> of <%= Model.TotalRecordCount %>
</div>
<div class="next-paging">
<%= Model.HasNextPage ? Html.ActionLink(">", "Index", Model.buildParams(Model.NextPageIndex)) : ">"%>
<%= Model.HasNextPage ? Html.ActionLink(">>", "Index", Model.buildParams(Model.PageCount)) : ">>"%>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问该页面时,我收到错误:
CS0173:无法确定条件表达式的类型,因为'System.Web.Mvc.MvcHtmlString'和'string'之间没有隐式转换
错误标记在上方,似乎与操作链接有关.包括控制器名称没有帮助.有任何想法吗?
我有用于设置和拆除NHibernate的通用代码,我几乎所有的测试都需要它.有没有办法在一个地方包含"需要所有测试"代码,然后将其应用于所有测试?(比如Nunit setup
和teardown
方法)
[Subject("Accessing the TAE allocation page")]
public class when_a_request_to_the_tae_allocation_page_is_made
{
Establish context = () => NHTestHelper.StartTest(); //need for all tests
Because of = () => result = new AllocationController(true).Index();
It should_display_the_page = () => result.ShouldBeAView();
Cleanup nh = () => NHTestHelper.EndTest(); //need for all tests
static ActionResult result;
}
Run Code Online (Sandbox Code Playgroud) 我在.NET中遇到了一个精度问题,我认为这只适用于浮点数,但现在我看到double是浮点数.
double test = 278.97 - 90.46;
Debug.WriteLine(test) //188.51000000000005
//correct answer is 188.51
Run Code Online (Sandbox Code Playgroud)
处理这个问题的正确方法是什么?回合?丢掉不需要的小数位?
如果我在这里导航:http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js
我使用Firefox 3.6.3下载70k,我可以确认它正在发送Accept-Encoding:gzip.
如果我使用Microsoft的:http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js
我下载30k(它来自内容编码:gzip)
在常规站点(例如jquery.com)中使用jquery 1.4.2时,我也遇到了这种情况.很有趣的是,在google cdn上引用jquery 1.3.2的堆栈溢出正在通过gzip压缩.
为什么会这样?这是谷歌的某种问题还是我错过了什么?
我住在澳大利亚墨尔本.
编辑:oops混淆了链接.嗯http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js对我有用..看起来它只是1.4包含一个
我正在使用带有DataAnnotations的ASP.NET MVC.我创建了以下自定义ValidationAttribute,它可以正常工作.
public class StringRangeAttribute : ValidationAttribute
{
public int MinLength { get; set; }
public int MaxLength { get; set; }
public StringRangeAttribute(int minLength, int maxLength)
{
this.MinLength = (minLength < 0) ? 0 : minLength;
this.MaxLength = (maxLength < 0) ? 0 : maxLength;
}
public override bool IsValid(object value)
{
//null or empty is <em>not</em> invalid
string str = (string)value;
if (string.IsNullOrEmpty(str))
return true;
return (str.Length >= this.MinLength && str.Length <= this.MaxLength);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,出现的错误消息是标准的"字段*无效".我想将其更改为:"[DisplayName]必须介于[minlength]和[maxlength]之间",但我无法弄清楚如何从此类中获取DisplayName甚至字段的名称.
谁知道?
我有一个包含GLCode的表GL.我需要获取一个唯一的GLCode列表,但获取所有其他列.以下SQL生成我想要的结果.
select * from GL where GLId in (select Min(GLId) from GL group by GLCode )
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Criteria API执行此操作?
这是我最好的尝试:
var subQuery = DetachedCriteria.For<GL>();
subQuery
.SetProjection(Projections.Property("GLCode"))
.SetResultTransformer(new DistinctRootEntityResultTransformer());
return (List<GL>)currentSession
.CreateCriteria(typeof(GL))
.Add(Subqueries.PropertyIn("GLCode", subQuery))
.List<GL>();
Run Code Online (Sandbox Code Playgroud) 这对我来说已经存在于3个项目中的问题.
我尝试过以下方法:
<property name="connection.isolation">ReadCommitted</property>
Run Code Online (Sandbox Code Playgroud)
在hibernate.cfg.xml中设置
使用流利的nhiberate:
MsSqlConfiguration.MsSql2008.IsolationLevel(IsolationLevel.ReadCommitted);
Run Code Online (Sandbox Code Playgroud)
在global.asax.cs中设置
我总是被迫这样设置:
CurrentNhibernateSession.Transaction.Begin(IsolationLevel.ReadCommitted);
Run Code Online (Sandbox Code Playgroud)
哪个有效.(我可以使用NHibernate Profiler看到这个)
问题是现在我使用的是尖锐的架构,并且在该框架内调用了transaction.begin,我在重建它时遇到了麻烦.
有没有办法做到这一点,无需在开始交易时明确设置它?
我需要正则表达式来检查字符串是否包含8个十进制数字或更多.它可以包含任何其他内容,数字不必是连续的.
提前致谢
编辑:将"数字"替换为"十进制数字"以匹配接受的答案.
asp.net-mvc ×3
nhibernate ×3
.net ×1
c# ×1
cdn ×1
distinct ×1
double ×1
gzip ×1
jquery ×1
mspec ×1
precision ×1
regex ×1
sql-server ×1
web-config ×1