让我们假设我有一些页面
some.web/articles/details/5
some.web/users/info/bob
some.web/foo/bar/7
可以调用常见的实用程序控制器
locale/change/es
要么 authorization/login
如何获得这些方法(change
,login
)重定向到以前的行为(details
,info
,bar
),而通过前面的参数给他们(5
,bob
,7
)?
简而言之:如何在另一个控制器中执行操作后重定向到我刚刚访问过的页面?
想象一下这样的三个实体(客户,书籍,作者):
客户有很多书
一本书有一位作者
我使用该数据打印这样的报告:
Customer: Peter
Book: To Kill a Mockingbird - Author: Harper Lee
Book: A Tale of Two Cities - Author: Charles Dickens
Customer: Melanie
Book: The Hobbit - Author: J. R. R. Tolkien
Run Code Online (Sandbox Code Playgroud)
当我查询客户时,我按预期得到了一堆具有以下性质的查询
我可以通过包含这样的书来减少查询次数:
var customers = db.Customers.Include(c => c.Books);
但我不知道如何加载第三级(作者).我怎样才能做到这一点?
我最近以ASP.NET MVC和Django(实际上是MTV)的形式与MVC玩了很多,我必须说我喜欢它.
是否有任何类似的框架来创建桌面WinForm应用程序?
我将在大约一个月内开始开发我的下一个桌面应用程序.在过去,我提供的功能软件在可用性或美学部门中没有让任何人(包括我自己)惊叹不已.
有没有人知道任何资源或指南,甚至可以展示桌面软件中良好设计实例的书籍?
似乎有很多用于Web应用程序的资源,但桌面应用程序的这些资源相当渺茫.
让我们假设我有以下标记:
<div id="placeHolder"></div>
Run Code Online (Sandbox Code Playgroud)
我有一个jsVar
包含一些标记和一些JavaScript 的JavaScript变量.
通过使用Mootools 1.1,我可以将JavaScript内容注入占位符,如下所示:
$('placeHolder').setHTML(jsVar);
Run Code Online (Sandbox Code Playgroud)
这适用于Firefox,Opera甚至Safari,结果标记如下所示:
<div id="placeHolder">
<strong>I was injected</strong>
<script type="text/javascript">
alert("I was injected too!");
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
但是,在IE 8上我得到以下内容:
<div id="placeHolder">
<strong>I was injected</strong>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法在IE 8上注入JavaScript或安全模型是否禁止我这样做?
我尝试了Luca Matteis的使用建议
document.getElementById("placeHolder").innerHTML = jsVar;
Run Code Online (Sandbox Code Playgroud)
而不是MooTools代码,我得到相同的结果.这不是MooTools的问题.
我可以使用getElementsByTagName()函数从网页中的元素中获取元素的集合.
我希望能够在javascript字符串变量的内容上使用类似的函数,而不是DOM元素的内容.
我该怎么做呢?
编辑
我可以通过动态创建元素来实现这一点.
var myElement = new Element('div');
myElement.innerHTML = "<strong>hello</strong><em>there</em><strong>hot stuff</strong>";
var emCollection = myElement.getElementsByTagName('em');
alert(emCollection.length); // This gives 1
Run Code Online (Sandbox Code Playgroud)
但是为了方便使用getElementsByTagName()函数而动态创建元素似乎不正确,并且不适用于Internet Explorer中的元素.
当我使用以下连接字符串运行应用程序时,将成功创建数据库文件.
<add name="ConnString1"
connectionString="Data Source=.\SQLEXPRESS;
Database=Database1;
Integrated Security=SSPI;
AttachDBFilename=|DataDirectory|aspnetdb.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
如果我删除数据库文件并尝试再次运行该应用程序,则无法创建数据库文件,并且我得到以下内部异常:
底层提供程序在Open上失败.
{"无法打开数据库\"Database1 \"登录请求.登录失败.\ Database1 \n登录失败,用户'计算机\\ someuser'."}
如果我改变数据库=数据库1到数据库的Database2 =在连接字符串中那么数据库文件创建成功.问题总是重演.
如何在不更改数据库名称的情况下重新创建数据库文件?
为了清楚起见,我将给出我能想到的最基本的例子.
可以说我有两个以下形式的实体:
public class Student
{
public int Id {get;set}
public string FullName {get;set;}
public virtual ICollection<Course> Courses {get;set;}
}
public class Courses
{
public int Id {get;set;}
public string FullName {get;set;}
public virtual ICollection<Student> Students {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这两个实体映射到三个表,第三个表是连接的表.
当我像这样查询学生时
var allStudents = context.Students;
Run Code Online (Sandbox Code Playgroud)
然后遍历结果以显示学生及其课程列表
foreach (var student in allStudents)
{
display(student.FullName);
foreach (var course in student.Courses)
{
display(course.FullName);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到第一个查询返回的每个学生的课程查询.
如何通过一个查询告诉实体框架急切地将课程加载到学生中?
database many-to-many entity-framework eager-loading ef-code-first
我正在学习ASP.NET MVC,我喜欢它.但是,我对使用命名空间模型的正确方法感到非常困惑.
在剖析NerdDinner示例应用程序时,我注意到Models文件夹中的所有内容都属于Models命名空间.数据映射类,存储库,错误规则管理等属于相同的命名空间级别.
据我所知,这个文件夹的灵感来自像Rails和朋友这样的框架,并且需要证明MVC标题中的M是合理的; 自动模型命名空间是否会破坏编写可在不同系统和实现中分离和移植的业务逻辑的任何机会?
我应该将我的业务逻辑命名为此Model命名空间下面还是应该完全忽略它并以更加框架独立的方式对我的类进行分类?
是否有任何复杂和良好的ASP.NET MVC示例应用程序可以证明这一点?
asp.net-mvc ×2
javascript ×2
database ×1
many-to-many ×1
mootools ×1
nerddinner ×1
redirect ×1
routing ×1
string ×1
winforms ×1