我收到了一个用Asp.Net MVC4构建的原型应用程序.它目前正在使用NInject,ServiceLocator等全部替换默认控制器工厂.
问题是,通过替换默认控制器工厂,对JS文件的请求被视为对控制器和操作的合法请求.
因此,查看Visual Studio创建的默认模板,路由配置如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
看了之后,我问自己:为什么"/Scripts/jquery.js"的请求不会被Asp.Net MVC解释?我的意思是,为什么它不认为"脚本"是一个控制器而"jquery.js"是一个动作?
因为如果禁用控制器工厂覆盖,项目可以工作,我只能假设默认工厂负责这种检查.这意味着"/ Scripts/jquery.js"确实传递给控制器工厂,这是我真正不知道的事情.
任何人都可以对此有所了解吗?
当覆盖控制器工厂以避免此类问题时,应该做什么样的处理?
在尝试为新项目创建数据访问层时,我遇到了我只能想象的OOP/Design/Generics问题(使用EF 4.3访问数据库).
主要是我想用这个数据层实现两件事:
出于某种原因,我无法在服务层上引用EntityFramework的情况下编译我的解决方案.我正在寻找的是解决这个问题的方法.这就是我所拥有的:
//Project/Namespace BusinessLogicLayer.DomainClasses
//POCO classes mapped on Entity Framework.
//Project/Namespace DataAccessLayer.Base
//Base classes and interfaces for all data access layer, such as:
public abstract class BaseContext<TContext> : DbContext where TContext : DbContext
{
//To allow multiple contexts sharing the same connection string
protected BaseContext(): base("name=MyConnectionString") {}
}
//Generic interface for a read-only repository
public interface IReadOnlyRepository<T> : IDisposable where T : class
//Generic interface for a read/write repository
public interface IRepository<T> : IReadOnlyRepository<T> where T …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Entity Framework Code First Fluent API映射现有数据库.我在与多对多关系和级联删除的情况下苦苦挣扎.
这是我的两个POCO课程:
public class Foo
{
public int FooId;
public string FooDescription;
public IList<Bar> Bars;
}
public class Bar
{
public int BarId;
public string BarDescription;
}
Run Code Online (Sandbox Code Playgroud)
现在,我只有从导航属性Foo来Bar.这是因为在我的真实的情景,这是没有意义的人,从去Bar到Foo.from Footo 的关系Bar实际上是0,n表示一个Foo不需要实例的实例Bar.
我现有的数据库在这两个表之间有一个连接表.此表如下所示:
create table Foo_Bar(
FooId int not null,
BarId int not null
);
Run Code Online (Sandbox Code Playgroud)
因为我不想在我的项目中创建这样的POCO类,所以我映射了这样的表:
modelBuilder.Entity<Foo>()
.HasMany(t => t.Bars)
.WithMany()
.Map(m =>
{
m.ToTable("Foo_Bar");
m.MapLeftKey("FooId");
m.MapRightKey("BarId");
});
Run Code Online (Sandbox Code Playgroud)
这适用于插入.实体在Foo上插入,然后在现有Foo_Bar表上插入.
但是当我删除a时 …
我有一个带有主引导板的页面,在这个面板中我有另一个面板.目标是在主要面板内部放置多个嵌套面板,创建看起来类似于图库的东西.
我能够创建内容,此时它是响应式的,在必要时调整每行嵌套面板的数量及其大小.
然而,内部面板具有应居中的图像.我尝试将图像放在带有类容器的div 中.但是,当我这样做时,在某些屏幕尺寸下,图像最终会在内部面板之外.
这是我的HTML(为简单起见,只有2个内部面板):
<div id="mainContainer" class="container">
<div class="panel panel-default">
<div class="panel-heading">Panel Title</div>
<div class="panel-body">
<div class="row">
<!--BEGIN OF ITEM 1 -->
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="panel panel-default">
<div class="panel-heading">Item 01</div>
<div class="panel-body"><img src="http://placehold.it/150x150" alt="" class="img-responsive" />
</div>
</div>
<!--END OF ITEM 1 -->
<!--BEGIN OF ITEM 2 -->
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="panel panel-default">
<div class="panel-heading">Item 02</div>
<div class="panel-body"><img src="http://placehold.it/150x150" alt="" class="img-responsive" />
</div>
</div>
<!--END OF ITEM 2 --> …Run Code Online (Sandbox Code Playgroud) 在iOS 10之前,UIToolbar在其项目之间具有灵活的空格键按钮项目将自动减少字体,以便所有文本显示在屏幕上.以下示例(iOS 10):
从XCode 9开始,在模拟器上运行iOS 11时,我的工具栏显示如下:
文本不仅缩小了字体大小,而且最后一个条形按钮项(没有文本,只有图像)也消失了.
试图解决这个问题,我发现自iOS 11以来,UIToolbar现在使用的是Autolayout而不是Frames.与此问题相关的一些帖子建议为项目创建约束,指定项目的宽度和/或高度.
但是,我想要实现的是适合工具栏中的所有内容,即使这意味着减小字体大小.我认为我不能以编程方式设置固定的宽度/高度.
此外,这是在故事板上使用IB构建的.UIBarButtonclass不允许我访问UILabel(对于文本项)或ImageView(对于带有图像的项).我检查,customView是nil在运行时.
我试图通过代码创建项目,设置customView一个UILabel与adjustsFontSizeToFitWidth设置为true没有任何的运气.我不知道iOS 11上灵活空格键项的目的是什么.
那么,如何模仿我以前的行为呢?适合所有项目并自动调整文本大小?
我在只能想象是Javascript范围问题和Microsoft Asp.Net客户端框架方面遇到了一些麻烦。
由于此问题中所述的原因,我需要覆盖由Asp.Net的ScriptResource.axd提供并由其Validator服务器控件使用的javascript函数ValidatorConvert。
首先,我将介绍如何使代码正常工作。然后,我将展示一个无法正常工作的方案。
这是带有验证程序控件的简单Asp.Net WebForm:
<body>
<form id="form1" runat="server">
<script type="text/javascript">
function ValidatorConvert(op, dataType, val) {
//>>Overwrite ValidatorConvert function.
//>>Call to the original JS file will be below the form tag and above script tag
return op.toString(); //<<Consider everything as valid (client side)
}
</script>
<asp:ScriptManager runat="server"
ID="Scriptmanager1"
allowcustomerrorsredirect="true"
asyncpostbackerrormessage="Operation cannot be executed."
asyncpostbacktimeout="90"
enablepartialrendering="true"
enablescriptglobalization="true"
enablescriptlocalization="true"
supportspartialrendering="true"
scriptmode="Inherit"></asp:ScriptManager>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CompareValidator
ID="CompareValidator1"
runat="server"
ErrorMessage="Ops, not an integer"
Operator="DataTypeCheck"
Type="Integer"
ControlToValidate="TextBox1"></asp:CompareValidator>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" …Run Code Online (Sandbox Code Playgroud) 我正在尝试遵循aurelia(验证)教程.但是,我知道它需要更新.即便如此,我认为通过文档,我将能够弄清楚如何使其工作,这是不会发生的.
原始代码如下:
import {inject} from "aurelia-framework";
import {Validation} from "aurelia-validation";
@inject(Validation)
export class Edit {
constructor(validation) {
this.validation = validation.on(this)
.ensure("movie.title")
.isNotEmpty()
.ensure("movie.releaseYear")
.isNumber();
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎不再起作用了.尝试在构造函数中进行验证时出现注入错误.
我去了文档,似乎不再存在验证符号.
我试图注入ValidationRules和验证到我的课,但没有支持保证或上的方法.
我尝试按照文档上的流程进行操作,其中"on"将是最后一个方法调用.但由于甚至没有确保工作,我被困住了.
感谢任何帮助.
c# ×3
.net ×2
asp.net ×2
asp.net-mvc ×1
aurelia ×1
autolayout ×1
css ×1
generics ×1
html5 ×1
ios ×1
javascript ×1
oop ×1
uitoolbar ×1