Articles of asp.net mvc 3

在.cshtml页面中发送和接收数据

我正在做我的作业,我正在asp.net MVC 3中开发一个购物网站,目前我只在视图中做我的工作。 我有一个产品页面,点击详细信息,我必须打开产品详细信息页面。 Details 我有多个产品,我想告诉我的产品详细信息页面打开了哪些产品详细信息。 一种方法是我可以使用URL附加Id Details 但我无法理解如何在产品详细信息页面上收到此ID,因为我没有控制器,也没有模型,我使用服务器端代码在.cshtm页面上使用压缩数据库获取数据。

MVC3模型使用自定义EditorTemplate和Partial View将pagedlist绑定到ViewModel

我试图生成一个包含在部分视图中的分页结果表。 它使用ajax调用动态刷新。 我在很多页面上重现了它,但是在特定的页面上,我需要绑定表行的值并使用ViewModel返回。 为了实现这一点,我尝试使用EditorTemplate来为PagedList集合使用自定义对象。 问题在于PartialView上显示的editortemplate没有为主ViewModel上的PagedList集合正确命名。 如果我用代码解释它可能更容易。 主要观点如下: @model RequestCreateViewModel @Html.Partial(“_PagedCreateRequest”) @Html.HiddenFor(x => x.PageSize) @Html.HiddenFor(x => x.PageNumber) 因此,部分是: @model IPagedList @Html.EditorFor(x => Model) @Ajax.ImageActionLink( “../../Content/images/first.gif”, “alt text”, “PageResults”, new { Page = 1, area = “Admin”, SortBy = Model.SortBy, SortDescending = Model.SortDescending, PageSize = Model.PageSize }, new { style = “margin-top: 2px;” }, new { @readonly […]

解决歧义

我有一个控制器,有3个重载的create方法: public ActionResult Create() {} public ActionResult Create(string Skill, int ProductId) {} public ActionResult Create(Skill Skill, Component Comp) {} 在我的一个观点中,我想创建这个东西,所以我称之为: @Html.Action(“Create”) 但我得到错误: {“控制器类型’XController’上的当前操作请求’Create’在以下操作方法之间是不明确的:System.Web.Mvc.ActionResult类型X.Web.Controllers.XController上的Create()System.Web.Mvc.ActionResult在类型X.Web.Controllers.XController上创建(System.String,Int32)System.Web.Mvc.ActionResult在类型X.Web.Controllers上创建(X.Web.Models.Skill,X.Web.Models.Component)。 XController“} 但由于@html.Action()没有传递任何参数,因此应该使用第一个重载。 它对我来说似乎并不含糊(这只意味着我不认为像ac#编译器)。 任何人都可以指出我的方式错误吗?

在ASP.Net MVC 3项目中无法使用Entity Framework进行SaveChanges

学习asp.net mvc 3 + EF代码优先。 我是两个都是新手。 我的例子是微不足道的,但我仍然无法使其发挥作用。 缺少一些简单而明显的东西…… 我有一节课: public class Product { [HiddenInput(DisplayValue = false)] public int ProductID { get; set; } [Required(ErrorMessage = “Please enter a product name”)] public string Name { get; set; } [Required(ErrorMessage = “Please enter a description”)] [DataType(DataType.MultilineText)] public string Description { get; set; } [Required] [Range(0.01, double.MaxValue, ErrorMessage […]

如何使用Razor将文件上传到MVC 3中的App_Data / Uploads后查看文件?

我是mvc的新手,我遇到了问题。 我搜遍了所有的答案,我找不到一个,但我很确定有些东西会让我失望。 问题是我将文件上传到App_Data文件夹后不知道如何访问文件。 我使用在所有论坛上找到的相同代码: 对于我的观点,我使用它 @using (Html.BeginForm(“Index”, “Home”, FormMethod.Post, new { enctype=”multipart/form-data” })) { } 对于我的控制器,我使用它 public class HomeController : Controller { // This action renders the form public ActionResult Index() { return View(); } // This action handles the form POST and the upload [HttpPost] public ActionResult Index(HttpPostedFileBase file) { // Verify that the […]

是MVC WebGrid开源吗?

是MVC WebGrid开源吗? 如果是这样,我在哪里可以找到源代码。 WebGrid的当前版本几乎没有文档,不完整的实现等。 我试图做一个简单的事情,就是在视图中向WebGrid.Column()添加一个visibility属性,但这是不可能的

基于声明的表单身份validation角色

我正在尝试使用MVC 4中的表单身份validation对用户进行身份validation(我使用的是RavenDB,因此我无法使用标准成员资格提供程序)。 然后,我使用User.IsInRole()方法或AuthorizeAttribute来validation用户是否处于职员角色。 这是我在成功validation时设置票证的位置(目前在UserController.cs ): FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, model.Email, DateTime.Now, DateTime.Now.AddDays(1), false, model.Email); string hashedTicket = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie( FormsAuthentication.FormsCookieName, hashedTicket); HttpContext.Response.Cookies.Add(cookie); 这是我检查每个请求的票证( Global.asax ): protected void Application_AuthenticateRequest(object sender, EventArgs e) { var authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { var authTicket = FormsAuthentication.Decrypt(authCookie.Value); var user = this.UserService.GetUserByEmail(authTicket.Name); […]

如果浏览器关闭/上传取消,如何停止文件传输

我在MVC3中与HTML5异步上传文件。 如果我有一个大文件,比如大小为1GB,上传完成50%后取消上传或关闭浏览器,它仍会在目标文件夹中保存500MB文件。 如何在控制器和客户端处理此问题? 这是我的控制器动作: [HttpPost] public ActionResult Upload(object fileToUpload1) { var fileName = Request.Headers[“X-File-Name”]; var fileSize = Request.Headers[“X-File-Size”]; var fileType = Request.Headers[“X-File-Type”]; Request.SaveAs(“D:\\uploadimage\\” + fileName, false); if (fileToUpload1 == null) { return Json(true, JsonRequestBehavior.AllowGet); } else { return Json(false, JsonRequestBehavior.AllowGet); } // return Json(false, JsonRequestBehavior.AllowGet); } 这是Javascript: // Uploading – for Firefox, Google Chrome and […]

如何在MVC3 / Razor中正确重定向(同时设置cookie)?

首先,我感觉Response.Redirect只是经典ASP的遗留物,我应该在MVC范例中使用其他东西。 第二,虽然我当前的Response.Redirect IS实现工作,但它没有设置我想要的cookie。 我假设这是因为标头被删除而不是重定向发送到客户端。 这是我到目前为止: [HttpPost] public ActionResult Login(FormCollection form) { User user; string sessionKey; if (UserManager.Login(form[“Email”], form[“Password”])) { // Login stuff here // Remember user’s email Response.Cookies[“Email”].Value = form[“Email”]; Response.Cookies[“Email”].Expires = DateTime.Now.AddDays(31); // Redirect to homepage Response.Redirect(“~/”); } }

除了一个(登录)之外,保护Controller中所有操作的最佳方法是什么?

目前我的AdminController上的所有方法都有[Authorize]属性,但Logon操作除外。 反转这个的最简洁的方法是什么,所以我不必记住将属性添加到所有方法,而是仅将属性添加到应该可用的方法而不登录? 将Logon操作移动到自己的控制器,并将[Authorize]属性应用于AdminController类,我会更好吗?