我正在编写一个Web应用程序,允许用户浏览网站内的多个网页,提出某些请求.用户输入的所有信息都将存储在我创建的对象中.问题是我需要从网站的任何部分访问此对象,我真的不知道实现这一目标的最佳方法.我知道一个解决方案是使用会话变量,但我不知道如何在asp .net MVC中使用它们.我会在哪里声明会话变量?还有其他方法吗?
我有一个.NET应用程序,它具有用于Debug和Release版本的不同配置文件.例如调试app.config文件指向一个发展的SQL Server具有调试启用,并公布目标指向活的SQL Server.还有其他设置,其中一些在调试/发布中有所不同.
我目前使用两个单独的配置文件(debug.app.config和release.app.config).我在项目上有一个构建事件,它说如果这是一个发布版本,那么将release.app.config复制到app.config,否则将debug.app.config复制到app.config.
问题是应用程序似乎从settings.settings文件中获取其设置,因此我必须在Visual Studio中打开settings.settings,然后提示我设置已更改,因此我接受更改,保存settings.settings并具有重建以使其使用正确的设置.
是否有更好/推荐/首选的方法来实现类似的效果?或者同样,我接近这个完全错误并且有更好的方法吗?
我在http://jsfiddle.net/GKnkW/2/创建了示例
HTML
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div class="step">1</div>
<div class="step">2</div>
<br/><br/>
<div class="step1">3</div>
<div class="step1">4</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
CSS
.step
{
height:150px;
width:150px;
background:yellow;
display:inline;
}
.step1
{
height:150px;
width:150px;
background:yellow;
}
Run Code Online (Sandbox Code Playgroud)
我希望在添加显示时立即显示两个div与它们的原始高度和宽度(在css中设置):内联属性到css它似乎松散了之前定义的高度和宽度.[检查#1和#2的div似乎松散的高度和宽度设置]
可能有一个引脚指出一个错误,我似乎正在做或解决这个奇怪的行为?
是否可以格式化在Mantis bug跟踪器中输入的bugnotes(注释)?
我使用的是Mantis v1.0.8
例如
"样品螳螂虫笔记"
它显示为纯文本.
我想大胆或以不同的颜色显示
例如,类似于https://stackoverflow.com/editing-help
任何其他错误跟踪系统是否允许此类功能?
我正在阅读Scott Gu关于ASP.NET 5.0功能的博客,博客中提到的一个新功能是使用json文件作为配置和消除Web.config文件.
关于这个功能我几乎没有问题.
假设我有以下log4net配置,之前已添加到以前版本的ASP.NET中的Web.Config
配置文件
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\TestProj\\TestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
如何在config.json中添加部分?
如何转换上面的xml并将其添加到config.json?
第三方库(在我的示例中为log4net)或库的用户是否必须添加某种类型的自定义转换API以支持基于json的配置,以便利用ASP.NET 5.0中提供的新配置功能?
在开发我的Web应用程序时,我需要在3种不同的环境中切换 - 开发,UAT和Prod.我的配置文件中有3个不同的数据库连接.我已经看到通过更改所有引用然后重新构建解决方案来手动完成这些设置,并且还完成了预处理器指令.是否有一种简单的方法可以根据某些变量执行此操作,以便在每次部署到新环境时不必修改配置?
我试图按照这个问题的答案添加custon 404页面
ASP.NET MVC 404处理和IIS7 <httpErrors>
通过增加
<httpErrors existingResponse="PassThrough" />
Run Code Online (Sandbox Code Playgroud)
<system.webServer>在我的Web.Config文件中的标记下.
但我得到了以下错误
Module: CustomErrorModule
Notification: SendResponse
Handler: System.Web.Mvc.MvcHandler
Error Code: 0x80070021
Config Error: This configuration section cannot be used at this path.
This happens when the section is locked at a parent level.
Locking is either by default (overrideModeDefault="Deny"),
or set explicitly by a location tag with overrideMode="Deny"
or the legacy allowOverride="false".
Config Source
153: <httpErrors existingResponse="PassThrough" />
154: </system.webServer>
Run Code Online (Sandbox Code Playgroud)
我还尝试根据http://learn.iis.net/page.aspx/145/how-to-use-locking-in-iis-70-configuration(任务2)覆盖锁定
通过在Web.config中添加位置标记
如下
<configuration>
....
....
<location …Run Code Online (Sandbox Code Playgroud) declare @a varchar(40)
set @a='1.23e-4'
declare @b decimal(27,12)
if isnumeric(@a) =1
begin
select @b=cast(@a as decimal(27,12))
end
else
begin
select @b=-1
end
select @b
Run Code Online (Sandbox Code Playgroud)
当在SQL 2005环境下执行上面的sql代码时,我收到以下错误.
将数据类型varchar转换为数字时出错
有谁知道为什么?
谢谢.
继sql之后
declare @a as float, @b as float
select @a=1.353954 , @b=1.353956
select
CAST(@a as VARCHAR(40)) AS a_float_to_varchar ,
CAST(@b as VARCHAR(40)) AS b_float_to_varchar
Run Code Online (Sandbox Code Playgroud)
结果是
a_float_to_varchar b_float_to_varchar
---------------------------------------- ----------------------------------------
1.35395 1.35396
Run Code Online (Sandbox Code Playgroud)
基于
http://msdn.microsoft.com/en-us/library/ms173773.aspx
float具有15位数的精度,因此我不确定为什么在转换为varchar时该数字被舍入
所以,我一直在用头撞墙,我找不到任何好的消息来源.也许我忘记了模型绑定的东西在MVC3中是如何工作的,但这就是我想要做的事情:我有一些与Knockout绑定的编辑器来处理模型的编辑.模型没什么了不起的:
public class SetupTemplate
{
public int Id { get; set; }
public string Name { get; set; }
public string Template { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我试图呼叫的动作的签名是:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UpdateTemplate(SetupTemplate template)
Run Code Online (Sandbox Code Playgroud)
从这里的另一个问题,我拿起这个相当有用的片段来获取防伪标记:
window.addAntiForgeryToken = function(data) {
data.__RequestVerificationToken = $('#__AjaxAntiForgeryForm input[name=__RequestVerificationToken]').val();
return data;
};
Run Code Online (Sandbox Code Playgroud)
所有这些都与我一起尝试通过ajax发布更新:
payload = window.addAntiForgeryToken(ko.mapping.toJS(self.data));
$.ajax({
type: "post",
url: endpoint,
data: payload,
success: function(data) {
//Handle success
}});
Run Code Online (Sandbox Code Playgroud)
这导致了Chrome开发人员工具的表单数据部分
Id:1
Name:Greeting
Template: [Template Text]
__RequestVerificationToken: [The really long anti-forgery token]
Run Code Online (Sandbox Code Playgroud)
拾取防伪标记,但我的模型为空.我见过的大多数例子只使用传递的单个参数,而不是模型.
我确定我错过了一些明显的东西,对它可能是什么的任何见解?
编辑:响应@Mark,将调用更改为:
$.ajax({
type: …Run Code Online (Sandbox Code Playgroud) 这就是我使用Fluent Nhibernate创建Session Factory的方法
public static ISessionFactory CreateSessionFactory()
{
FluentNHibernate.Cfg.FluentConfiguration fconfig;
fconfig = FluentNHibernate.Cfg.Fluently.Configure()
.Cache(c=>c.UseQueryCache())
.Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("Database"))
.ProxyFactoryFactory<NHibernate.ByteCode.LinFu.ProxyFactoryFactory>()
.Mappings(
m => m.FluentMappings
.AddFromAssemblyOf<NHibernateRepositoryRegistry>()
.Conventions.Add<Conventions.PrimaryKeyConvention>()
.Conventions.Add<Conventions.IdForeignKeyConvention>()
.Conventions.Add<Conventions.ReferenceForeignKeyConstraintNameConvention>()
)
// i have tried this but it did not work
//.ExposeConfiguration(config=>{config.SetProperty("show_sql", "false");});
return fconfig.BuildSessionFactory();
}
Run Code Online (Sandbox Code Playgroud)
这是我在Web.config中的log4net配置
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="nhibernate.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level %thread %logger - %message%newline" />
</layout>
</appender>
<appender name="RollingFile2" type="log4net.Appender.RollingFileAppender">
<file value="nhibernatesql.log" />
<appendToFile value="true" />
<maximumFileSize …Run Code Online (Sandbox Code Playgroud) 我有一个字符串,如"Value = $ val $",我想用"$ 0.00"之类的值替换$ val $
所以最终字符串看起来像"值= $ 0.00"
这适用于firefox和IE 7以及IE 8,但在IE 9中不起作用任何想法为什么?以及如何解决这个问题?
$ 0.00以外的任何值(例如$ 5.00)都可以正常运行.
编辑:更新的链接,文本框和按钮,以测试diff值.
在IE 9中我得到"Value = $ val $ .00"
浏览器处于标准模式.
注意:我正在研究遗留代码,所以,理想情况下,我希望远离诱人的jquery解决方案.
asp.net ×2
json ×2
log4net ×2
.net ×1
ajax ×1
asp.net-core ×1
asp.net-mvc ×1
c# ×1
csrf ×1
css ×1
iis-7 ×1
javascript ×1
jquery ×1
mantis ×1
nhibernate ×1
replace ×1
session ×1
sql ×1
sql-server ×1
vb.net ×1
web-config ×1