我是MVC的新手,刚刚遇到了我需要一些帮助的场景.
我将简要概述我的场景,好像它是一个我更熟悉的Web窗体应用程序.
我有一个主页,其中列出了最近的10篇博客文章,以及"存档树"(按时间顺序列出年份/月份,以及这些年/月中每个博客条目的链接).
我将此"存档树"创建为用户控件,并在我的主页上输出该用户控件.
我还将此存档树用户控件输出到我的主博客页面的一侧 - 博客页面仅显示一篇博文的详细信息.
我还想在我的Web应用程序中的几个其他页面上重用此存档树控件.
我有一个'PhotoController'控制器,它有一个ActionResult方法,负责获取所选照片博客帖子(id)的详细信息.
我想在我的照片博客页面上包含一个部分视图(存档树,它将呈现多个记录),它将遍历多个照片记录(List<Photo>).
我可以创建一个视图模型,它包含一个'Photo'属性(用于渲染单个照片博客记录详细信息)和一个名为'PhotoArchive'的第二个属性,它是一个List<Photo>.
我对这种方法的关注是,当我在整个网站的某些其他部分重新使用这个"存档树"部分视图时,我不一定想要通过相同的视图模型(包含父视图中的"Photo"和"PhotoArchive"对象.例如,我的主页不需要通过"照片"对象传递到呈现主页的视图,但我仍然想在我的主页上的其余HTML中输出我的"存档树"部分视图.
我期待有一个简单的解决方案,我目前还不知道对MVC这么新.
我有一个asp.net网络表单应用程序已经存在多年,因此在谷歌上有很多索引内容.
理想情况下,我更喜欢网站的所有Url都是小写的,但据我所知,在搜索引擎(MixedCase.aspx和mixedcase.aspx)中索引相同内容的2个版本对seo不利.
我在想:
a)我应该将所有内容保留在当前的混合大小写形式中,而不是更改它吗?
要么
b)我可以更改代码,所以从这里开始,所有内容都是小写的,但是,有没有办法做到这一点,因为搜索引擎知道这个变化并且不会惩罚我?
我刚刚开始关注Dapper.net并且刚刚尝试了一些不同的查询,其中一个产生了我不希望的奇怪结果.
我有2张桌子 - Photos&PhotoCategories,其中有关系CategoryID
照片表
PhotoId (PK - int)
CategoryId (FK - smallint)
UserId (int)
Run Code Online (Sandbox Code Playgroud)
PhotoCategories表
CategoryId (PK - smallint)
CategoryName (nvarchar(50))
Run Code Online (Sandbox Code Playgroud)
我的2个班:
public class Photo
{
public int PhotoId { get; set; }
public short CategoryId { get; set; }
public int UserId { get; set; }
public PhotoCategory PhotoCategory { get; set; }
}
public class PhotoCategory
{
public short CategoryId { get; set; }
public string CategoryName { get; set; }
{
Run Code Online (Sandbox Code Playgroud)
我想使用多映射来返回一个实例 …
我正在使用JQueryUI自动完成,我想知道如何使用自定义对象作为我的数据源(即我想传回以下类型的列表):
public class Tag
{
public string Name { get; set; }
public int Count { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的自动完成代码(当我传回一个直接的字符串数组名称时工作正常)几乎是jQuery UI站点的副本:
$(function () {
function split(val) {
return val.split(/ \s*/);
}
function extractLast(term) {
return split(term).pop();
}
$("#tags")
// don't navigate away from the field on tab when selecting an item
.bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("autocomplete").menu.active) {
event.preventDefault();
}
})
.autocomplete({
source: function (request, response) {
$.getJSON("Home/GetTag", {
term: extractLast(request.term)
}, response);
},
search: …Run Code Online (Sandbox Code Playgroud) asp.net-mvc jquery jquery-ui autocomplete jquery-ui-autocomplete
我正在创建一个呈现照片墙的网页,当您向下滚动时,它使用jQuery无限滚动来加载下一批照片.
我正在使用jQuery Masonry和jQuery InfiniteScroll.
一切都在Chrome和Firefox下工作正常,但在IE下查看时,我注意到图像会随机显示失败,但如果我刷新页面,它们会出现,但其他人会丢失.同样,如果我在丢失的图像上单击鼠标右键并选择"显示图片",它会立即显示.
所以我在jQuery Masonry网站上测试了几个演示,并再次发现,在IE下,偶尔会出现随机图像.这在我的无限滚动演示中发生,有时甚至是图像演示(不使用无限滚动).
有没有其他人经历过这个,或者知道解决方案?事实上,我将无法继续我当前的项目,因为它在IE下基本上无法使用.
顺便说一句 - 我正在使用IE9.
我有一个类需要IPrinciple根据当前经过身份验证的用户设置构造对象.
我找到了一些我试过的其他代码,但它没有用:
private readonly Lazy<IPrincipal> _principal;
public MyService(Lazy<IPrincipal> principal)
{
_principal = principal;
}
Run Code Online (Sandbox Code Playgroud)
我像这样配置了Simple Injector:
container.Register(() => new Lazy<IPrincipal>(() => HttpContext.Current.User));
Run Code Online (Sandbox Code Playgroud)
_principal当我尝试运行它时,显然是未定义/未设置为对象的实例.
我也尝试过:
container.Register(() => new Lazy<IPrincipal>(() => Thread.CurrentPrincipal));
Run Code Online (Sandbox Code Playgroud)
这让我可以检查,_principal.Value.Identity.IsAuthenticated但总是回来false.
我有以下两个班级:
public class Rule
{
public int Id { get; set; }
public string RuleValue { get; set; }
public bool IsActive { get; set; }
public SharedRuleType RuleType { get; set; }
public List<Exclusion> Exclusions { get; set; }
}
public class Exclusion
{
public int Id { get; set; }
public int InstanceId { get; set; }
public int SiteId { get; set; }
[ForeignKey( "RuleId" )]
public int RuleId { get; set; }
public Rule Rule { …Run Code Online (Sandbox Code Playgroud) 我是IoC的新手,在我当前的项目中使用Autofac.
我有以下两个班级:
public class UserService : IUserService
{
private readonly IUserRepository _repo;
private readonly IMailService _mailService;
public UserService(IUserRepository repo, IMailService mailService)
{
_repo = repo;
_mailService = mailService;
}
}
public class MailService : IMailService
{
private readonly IMailRepository _repo;
private readonly IUserService _userService;
public MailService(IMailRepository repo, IUserService userService)
{
_repo = repo;
_userService = userService;
}
}
Run Code Online (Sandbox Code Playgroud)
最初,我的UserService类不需要MailService类的实例,但现在它确实如此,并且自从将这个引入UserService构造函数以来已经出现了这个循环依赖性错误,并且是一个新手,我不知道如何解决这个问题
这就是我的课程目前在Autofac中注册的方式:
var builder = new ContainerBuilder();
// controllers
builder.RegisterControllers(Assembly.GetAssembly(typeof(UsersController)));
// register other classes
builder.RegisterType<UserRepository>().As<IUserRepository>();
builder.RegisterType<MailRepository>().As<IMailRepository>();
builder.RegisterType<UserService>().As<IUserService>();
builder.RegisterType<MailService>().As<IMailService>();
Run Code Online (Sandbox Code Playgroud) asp.net dependency-injection ioc-container inversion-of-control autofac
我目前有一个使用BlueImp jQuery FileUploader的ASP.NET MVC项目,效果很好.
https://github.com/blueimp/jQuery-File-Upload
但是,似乎默认行为是在将文件上载到服务器时使用原始文件名.理想情况下,我想要的是让jQuery FileUploader为每个上传的文件生成唯一的文件名.
我确实尝试对服务器上的每个上传文件进行重命名,但后来我意识到FileUploader似乎挂起了原始文件名.
有没有办法让jQuery上传器为每个上传的图像生成一个随机/唯一的文件名(无论是单独还是批量)?
我的数据库中的字段中包含以下文本:
[quote:5a7b87febe="mr smith"]This is some text.
This is more text on another line.[/quote:5a7b87febe]
Run Code Online (Sandbox Code Playgroud)
我正在尝试构建一个正则表达式,将上述任何实例转换为:
<div><h4>Posted by mr smith</h4>This is some text.
This is more text on another line.</div>
Run Code Online (Sandbox Code Playgroud)
到目前为止我放在一起的模式似乎适用于所附文本中没有换行的情况,但在上面的示例中,另一行上有文本,模式不匹配.
到目前为止我的C#代码是:
var exp = new Regex(@"(\[quote)(:\w+=\"")(.*?)(\""\])(.*?)(\[\/quote)(:\w+\])");
var str = exp.Replace(str, "<div><h4>Posted by $3</h4>$5</div>");
Run Code Online (Sandbox Code Playgroud)
我在正则表达式上很垃圾,所以我不确定如何处理打开和关闭'quote'标签之间出现的"任何"字符.
理想情况下,如果可能的话,我还希望表达式处理上面示例的嵌套实例.
值得一提的另一件事是,"quote:"标签后面的一系列字符每次都是唯一的,引号内的名称也会有所不同.
asp.net-mvc ×4
c# ×4
.net ×3
jquery ×3
asp.net ×2
autocomplete ×1
autofac ×1
dapper ×1
file-upload ×1
javascript ×1
jquery-ui ×1
mapping ×1
regex ×1
seo ×1
url ×1