我正在尝试使用数据注释在MVC3中进行客户端验证.我看过类似的帖子,包括这个MVC3客户端验证不适用于答案.
我正在使用EF数据模型.我为我的验证创建了一个这样的部分类.
[MetadataType(typeof(Post_Validation))]
public partial class Post
{
}
public class Post_Validation
{
[Required(ErrorMessage = "Title is required")]
[StringLength(5, ErrorMessage = "Title may not be longer than 5 characters")]
public string Title { get; set; }
[Required(ErrorMessage = "Text is required")]
[DataType(DataType.MultilineText)]
public string Text { get; set; }
[Required(ErrorMessage = "Publish Date is required")]
[DataType(DataType.DateTime)]
public DateTime PublishDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的cshtml页面包括以下内容.
<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Post</legend> …
Run Code Online (Sandbox Code Playgroud) 需要一些建议.我有很少的SEO经验.使用MVC 3为我的妻子新业务建立一个小册子网站.我在顶部使用链接进行了一些导航.
<a class="main" href="/Home/Contact">Contact Us</a>
Run Code Online (Sandbox Code Playgroud)
我正在拦截一些jquery.
ns.BindNavigation = function () {
$(".nav-bar a").click(function (e) {
$("#Content").load(this.href);
return false;
});
};
Run Code Online (Sandbox Code Playgroud)
Where/Home/Contact返回部分视图.我使用ajax加载的原因是我没有在每次重新加载所有页面内容的点击上获得整页回发.
所以,我在我的网站上运行了一个IIS搜索引擎优化报告,它显示了SEO违规和错误,因为/ Home/Contact没有元描述或标题(因为它是一个没有头标记的局部视图,如果你直接导航到那个URL).我的所有其他导航链接也是如此.
我的问题是,最好只为每个部分使用整页回发,以便在每个页面上获得标题和说明吗?或者是否有一些方法仍然使用ajax导航而不搞砸我的SEO.我知道没有完美的答案,所以提前感谢任何输入.
它看起来像使用Visual Studio 2015 RTM,bower_components文件夹已经消失,软件包直接保存到wwwroot/lib /文件夹.这可以通过以下事实来验证:默认gulpfile不再具有将文件从bower_components复制到wwwroot的功能.
但是在默认的project.json中,即使文件夹不再存在,bower_components仍然在"exclude"属性中.可能是疏忽?
有谁知道这是怎么回事?我在发行说明或错误修复和已知问题文章中没有看到任何相关内容.此外,我认为wwwroot文件夹的全部内容仅包含实际网站所需的白名单文件.其中,我想在这里提供库代码没有什么害处,它实际上使我们的生活更容易,因为我们添加了新的库,但在整个测试期间,bower_components文件夹被严格分开.
我刚刚将我的MVC2项目升级到MVC3并使用NuGet库包引用来安装ninject.这创建了一个appstart类,我使用以下代码注入我的IMembershipService类.
public static void RegisterServices(IKernel kernel) {
kernel.Bind<IMembershipService>().To<AccountMembershipService>();
}
Run Code Online (Sandbox Code Playgroud)
例如,这适用于我的HomeController.
public class HomeController : Controller
{
public IMembershipService MembershipService { get; set; }
public HomeController() : this(null) { }
public HomeController(IMembershipService service)
{
MembershipService = service;
}
Run Code Online (Sandbox Code Playgroud)
但是,我正在使用BaseController.基类中几乎相同的代码不再有效.
public class BaseController : Controller
{
public IMembershipService MembershipService { get; set; }
public UserService UserService { get; set; }
public BaseController() : this(null, null) { }
public BaseController(IMembershipService service, UserService userService)
{
MembershipService = service;
UserService = userService ?? new UserService(); …
Run Code Online (Sandbox Code Playgroud)