我有这个web.config文件,其编译选项设置如下
Web.config文件
<configuration>
...
<system.web>
<compilation debug="true" targetFramework="4.5" />
...
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是默认情况下Visual Studio为发布模式提供的内容.
Web.Release.config
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我正在将它用于MVC4项目.基于本教程,我希望当应用程序在发布模式下运行时,将提供js和css的缩小版本.但这似乎并不起作用,并且正在提供js和css的非缩小版本.另一方面,如果我在web.config中明确地将debug设置为false,则正确提供最小版本.
当应用程序在发布模式下运行时,似乎编译标签转换问题,但我不明白Web.Release.config中的相同内容有什么问题.
简而言之,我无法通过在发布模式下运行应用程序来进行捆绑和缩小工作.
asp.net asp.net-mvc asp.net-mvc-4 bundling-and-minification web.config-transform
我跟随两个实体,我试图使用外键关联(一对一).
public class StandardRack {
public int Id {get;set}
public StandardRelay StandardRelay {get;set}
}
public class StandardRelay {
public int Id {get;set}
public int StandardRack_Id {get;set;}
[Required][ForeignKey("StandardRack_Id")]
public StandardRack StandardRack { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这会抛出ModelValidationException.任何想法为什么这样一个看似简单的一对一双向关系无法配置.
编辑:
这是例外:
捕获到System.Data.Entity.ModelConfiguration.ModelValidationException消息=在模型生成期间检测到一个或多个验证错误:
System.Data.Edm.EdmAssociationEnd :: Multiplicity在关系'StandardRelay_StandardRack'中的角色'StandardRelay_StandardRack_Source'中无效.由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为*.
Source = EntityFramework StackTrace:位于System.Data.Entity的System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateCsdl(EdmModel model)的System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.ValidateAndSerializeCsdl(EdmModel model,XmlWriter writer) .DbModelBuilder.Build(DbProviderManifest providerManifest,DbProviderInfo providerInfo)在System.Data.Entity.DbModelBuilder.Build(的DbConnection providerConnection)在System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)在System.Data.Entity.Internal. RetryLazy
2.GetValue(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.InternalContext.Initialize() at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) at System.Data.Entity.Internal.Linq.InternalSet1.Initialize()在System.Linq.Enumerable.ToList的System.Data.Entity.Internal.Linq.InternalSet1.GetEnumerator() at System.Data.Entity.Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable.GetEnumerator()at System.Collections.Generic.List1..ctor(IEnumerable1 collection) [TSource](IEnumerable`1 source)位于D:\ RailwayProjects\RelayAnalysis\TestApplication\MainWindow.xaml.cs中的TestApplication.MainWindow.Window_Loaded(Object …
我陷入了一个看似普遍的要求.我有一个WPF Prism(用于MVVM)应用程序.我的模型实现了IDataErrorInfo以进行验证.该IDataErrorInfo的非数值属性的伟大工程.但是,对于数字属性,如果用户输入无效字符(非数字),则数据甚至不会到达模型,因为wpf无法将其转换为数字类型.
所以,我不得不使用WPF ValidationRule为用户提供一些有意义的无效数字条目消息.视图中的所有按钮都绑定到棱镜的DelegateCommand(在视图模型中),按钮的启用/禁用在View Model本身中完成.
现在,如果某个TextBox的wpf ValidationRule失败,如何将此信息传递给View Model,以便它可以适当地禁用视图中的按钮?
在我的一个View页面中,我有一个asp.net mvc PartialView.PartialView包含一些javascript(和jquery).在我的asp.net主视图中,我使用ajax在div标签内加载PartialView,如下所示.也就是说,从控制器I返回PartialView("_ DonorEdit"),在我的主页面中,我使用javascript将Part标签的内容替换为PartialView响应.
<div class="content" id="content">
@{Html.RenderPartial("_DonorEdit");}
</div>
Run Code Online (Sandbox Code Playgroud)
除了partialView(_DonorEdit)中包含的javascript之外,一切正常.因此,问题归结为 - 如何在div标签中嵌入javascript并仍然使其正常工作.
仅当从ajax调用返回部分视图时,才会出现此问题.在上面的代码中,如果我直接包含PartialView(在非ajax请求上),那么javascript正常工作.但是如果我稍后使用ajax请求替换div的内容,则PartialView中包含的javascript不起作用.嵌入式javascript根本不会与"部分视图"一起显示.所以似乎有一些其他原因,为什么在ajax请求成功之后,部分视图中嵌入的javascript不会传递给浏览器.
我的javascript代码的一部分
<script type=...>
//Date Picker. This works. I get Calendar popup as expected
$(document).ready(function () {
$("#Donor_BirthDate").datepicker({
dateFormat: "dd-mm-yy",
changeMonth: true,
changeYear: true,
yearRange: "-75:+0"
});
$("#Donor_DateLastDonated").datepicker({
dateFormat: "dd-mm-yy",
changeMonth: true,
changeYear: true,
yearRange: "-20:+1"
});
});
//Dropdown handler. Does not make it in my final View.
function residenceStateChanged(e) {
var url = '@Url.Action("_GetCities", "DropDown")';
var cmbResidenceCityId = $('#ResidenceCityId').data('tDropDownList');
cmbResidenceCityId.loader.showBusy();
$.ajax({
type: 'GET',
url: url,
data: { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用IDataErrorInfo验证我的模型类,如下所示.
//Validators
public string this[string propertyName] {
get {
string error = null;
if (propertyName == "Name") {
error = ValidateName();
}
return error;
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但视图首次加载时已经包含验证错误.首次加载视图时是否可以忽略/禁止验证错误.此外,通常的做法是在视图加载时以及在用户启动模型属性的数据条目之前显示错误.
问候,Nirvan.
编辑: 这是我设置IDataErrorInfo的方式.
<TextBox Text="{Binding Name, ValidatesOnDataErrors=True}" Grid.Row="1" Grid.Column="1" />
Run Code Online (Sandbox Code Playgroud) 我有一个场景,我必须使用"表单身份验证"处理ajax请求的身份验证.根据我之前的stackoverflow帖子中的一些搜索和帮助,我决定使用此处描述的方法.
我们的想法是为未经身份验证的请求发回401响应,然后在AJAX错误处理程序中处理它.所以我的ASP.net MVC3布局页面中有一个AJAX错误处理程序,它在未经身份验证的ajax请求收到401响应时将浏览器重定向到登录页面.这是ajax错误处理程序.
$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.status == "401") {
window.location.replace(loginUrl);
}
....
});
Run Code Online (Sandbox Code Playgroud)
这一切都适用于我的本地IIS 7.5服务器.但不幸的是,在托管我的站点的服务器上,在AJAX错误处理程序运行并将浏览器重定向到登录页面之前,我在未经身份验证的ajax请求(例如会话超时)上获得了基本身份验证弹出窗口.当我通过按取消按钮取消"需要验证"弹出窗口时,AJAX错误处理程序然后运行,我被重定向到登录页面.
那么,为什么浏览器在运行AJAX错误处理程序之前会显示身份验证弹出窗口?
编辑:托管服务器正在运行IIS 6.
我正在使用CodeFirst EntityFramework.我有一个IQueryable<User>使用context.Users返回的实体; 其中context是EntityFramework的DbContext.从这个列表中我必须选择Id包含在Ids(long)数组中的那些.Id是用户实体的主键.我尝试了以下但得到编译器错误.
IQueryable<User> users = GetQueryableUsers();
long [] ids = GetSelectedIds(); //array of long representing Ids key of User entities
users.Intersect(ids); // compilation error
users.Where(user => ids.Contains(user.Id)); //compilation error
Run Code Online (Sandbox Code Playgroud)
编译错误是(没有找到Intersect/Contains的定义)注意:System.Linq已经导入.
我正在尝试使用Xceed CheckComboBox,除了一个小问题之外它运行良好.最初加载CheckComboBox时,CheckComboBox的ToggleButton部分中正确显示所选项List,但不检查表示这些项的复选框.这是我正在使用的代码
XAML
<xctk:CheckComboBox x:Name="_combo" Grid.Row="2" Grid.Column="1"
ItemsSource="{Binding RoomFacilities}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
DisplayMemberPath="FacilityName"
SelectedItemsOverride="{Binding SelectedFaclities}"
/>
Run Code Online (Sandbox Code Playgroud)
查看模型
public class RoomBandUpdateViewModel : Screen, IHandle<RecordChanged<RoomFacility>>,
IHandle<RecordDeleted<RoomFacility>> {
private ObservableCollection<RoomFacility> _roomFacilities;
public ObservableCollection<RoomFacility> RoomFacilities {
get { return _roomFacilities; }
set { _roomFacilities = value; NotifyOfPropertyChange(() => RoomFacilities); }
}
private ObservableCollection<RoomFacility> _selectedFacilities;
public ObservableCollection<RoomFacility> SelectedFaclities {
get { return _selectedFacilities; }
set { _selectedFacilities = value; NotifyOfPropertyChange(() => SelectedFaclities); }
}
protected override void OnActivate() {
SelectedFaclities = new ObservableCollection<RoomFacility>(RoomBand.Facilities);
RoomFacilities …Run Code Online (Sandbox Code Playgroud) 我将使用MD5哈希来存储加密密码.密码长度可以是6到40个字符.存储加密密码所需的数据库列大小是多少.此外,如果40个字符的散列大小非常大,那么20个字符的密码需要多少散列大小?
我FormsAuthentication.HashPasswordForStoringInConfigFile(stringToEncrypt, "MD5");用来生成用于存储在数据库中的哈希.
在ASP.net MVC3的上下文中,我在控制器动作中有这行代码,它试图重定向到特定的URL.
return Redirect(returnUrl);
Run Code Online (Sandbox Code Playgroud)
returnUrl是一个包含"/ Home/Index /"的字符串.由于某种原因,重定向没有发生,我仍然在同一个屏幕上.我尝试删除尾部斜杠但没有成功.任何想法为什么没有重定向?
asp.net-mvc ×3
wpf ×3
jquery ×2
asp.net ×1
c# ×1
hash ×1
javascript ×1
linq ×1
mvvm ×1
prism ×1
validation ×1
wpf-4.0 ×1
xceed ×1