Tag: asp.net mvc

如何lockingASP.NET MVC中的path?

与MVC 3相比,我第一次使用MVC 4来查看已经更改/添加/等等。 首先,我创build了一个空白的MVC 4 Web应用程序,并开始从头开始构build。 我注意到的MVC 4中的第一件事情是不同的是,以下web.config设置对网页的可访问性没有影响: <configuration> <location path=""> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location> ….. </configuration> 回到MVC 3,上面的授权设置将拒绝所有的匿名用户访问站点内的任何内容。 但是,如果我将相同的设置添加到MVC4 Web.config文件中,匿名可以自由select他/她所select的URL。 在MVC 4中,我需要做什么来locking所有path,就像我在MVC 3中所做的那样?

如何使用multipart / form-data做一个ASP.NET MVC Ajax表单发布?

我正在一个ASP.NET MVC的网站,它有一个窗体,允许使用窗体标签上的多部分/表单数据enctype选项上传文件 <form enctype="multipart/form-data" method="post" action='<%= Url.Action("Post","Entries",new {id=ViewData.Model.MemberDetermination.DeterminationMemberID}) %>'> 我怎么会写这个来做一个ASP.NET MVC Ajax表单发布?

ASP.Net MVC自定义模型绑定解释

有没有人知道我在哪里可以find一个build立自定义模型联编程序的教程。 我发现了几个使用EntitySets默认模型联编程序的问题(在创build新对象时创build新对象并在编辑对象上创build重复项时未填充),并发现我的UI与我的模型完全不匹配(例如,时间字段格式为“hh:mm am”不符合时间跨度)。 因此,我想看看创build自定义模型绑定器是否是更好的解决scheme。 我find了几个例子: 在这里和这里 。 第一个是我相信过时了,第二个没有真正解释发生了什么。 我的主要问题是我不完全理解BindModel方法的ControllerContext和ModelBindingContext实际上是什么,即它们如何与控制器和模型相关。 如果有人指点我的教程,或者可以看看dave hayden的post,并告诉我如何使用当前的MVC实现,我将不胜感激。

如何configurationweb.config以允许任何长度的请求

我正在build立一个网站,我想创build一个文件客户端从一个textarea元素的值。 我有代码来做到这一点,但我得到这个错误 HTTP错误404.15 – 未find请求过滤模块被configuration为拒绝查询string太长的请求。 有没有办法来覆盖这个,所以我能够处理任何大小的请求? 如果没有,有没有办法生成文件客户端而不使用文件系统/活动X对象? 谢谢

如何使用$ .ajax发布JSON数据时提供AntiForgeryToken?

我正在使用下面的这个职位的代码: 首先,我将使用控制器操作的正确值填充数组variables。 使用下面的代码,我认为它应该是非常简单的,只需将以下行添加到JavaScript代码: data["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val(); <%= Html.AntiForgeryToken() %>位于正确的位置,并且该操作具有[ValidateAntiForgeryToken] 但是我的控制器操作一直在说:“伪造令牌无效” 我在这里做错了什么? 码 data["fiscalyear"] = fiscalyear; data["subgeography"] = $(list).parent().find('input[name=subGeography]').val(); data["territories"] = new Array(); $(items).each(function() { data["territories"].push($(this).find('input[name=territory]').val()); }); if (url != null) { $.ajax( { dataType: 'JSON', contentType: 'application/json; charset=utf-8', url: url, type: 'POST', context: document.body, data: JSON.stringify(data), success: function() { refresh(); } }); }

在MVC中的Ajax.BeginForm来上传文件

我试图使用这里提到的一个例子如何做一个ASP.NET MVC Ajax表单发布多部分/表单数据? 但我不断收到“失败”错误消息框 Index.cshtml <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> <h2>Files Upload</h2> <script type="text/javascript"> $(function() { $("#form0").submit(function(event) { var dataString; event.preventDefault(); var action = $("#form0").attr("action"); if ($("#form0").attr("enctype") == "multipart/form-data") { //this only works in some browsers. //purpose? to submit files over ajax. because screw iframes. //also, we need to call .get(0) on the jQuery element to […]

ASP.Net MVC Html.HiddenFor具有错误的值

我在我的项目中使用MVC 3,我看到一个非常奇怪的行为。 我试图为我的模型上的特定值创build一个隐藏的字段,问题是,由于某种原因,字段上设置的值不对应于模型中的值。 例如 我有这个代码,只是作为一个testing: <%:Html.Hidden("Step2", Model.Step) %> <%:Html.HiddenFor(m => m.Step) %> 我会认为这两个隐藏的领域将具有相同的价值。 我所做的是在第一次显示视图时将值设置为1,然后在提交之后将模型字段的值增加1。 所以,我第一次渲染页面时,两个控件的值都是1,但是第二次渲染的值是这些: <input id="Step2" name="Step2" type="hidden" value="2" /> <input id="Step" name="Step" type="hidden" value="1" /> 正如你所看到的,第一个值是正确的,但第二个值似乎是第一次显示视图相同。 我错过了什么? *对于Html帮助者以某种方式caching值? 如果是这样,我怎么能禁用这个caching? 谢谢你的帮助。

jQuery ajax在asp.net mvc上传文件

在我看来,我有一个文件 <form id="upload" enctype="multipart/form-data"> <input type="file" name="fileUpload" id="fileUpload" size="23" /> </form> 和一个Ajax请求 $.ajax({ url: '<%=Url.Action("JsonSave","Survey") %>', dataType: 'json', processData: false, contentType: "multipart/mixed", data: { Id: selectedRow.Id, Value: 'some date was added by the user here :))' }, cache: false, success: function (data) {} }); 但Request.Files中没有文件。 Ajax请求有什么问题?

在Ajax调用中处理会话超时

我正在做一个Ajax调用使用jQuery的一个asp.net mvc控制器行动: [AcceptVerbs(HttpVerbs.Post)] public ActionResult GetWeek(string startDay) { var daysOfWeek = CompanyUtility.GetWeek(User.Company.Id, startDay); return Json(daysOfWeek); } 会话超时时,由于用户对象存储在会话中,所以此调用将失败。 我创build了一个自定义的授权属性,以检查会话是否丢失,并redirect到login页面。 这适用于页面请求,但是它不适用于Ajax请求,因为您不能从ajax请求redirect: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public class AuthorizeUserAttribute : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { if (!httpContext.Request.IsAjaxRequest()) {//validate http request. if (!httpContext.Request.IsAuthenticated || httpContext.Session["User"] == null) { FormsAuthentication.SignOut(); httpContext.Response.Redirect("~/?returnurl=" + httpContext.Request.Url.ToString()); return false; } } return […]

使用VirtualPathProvider从DLL加载ASP.NET MVC视图

基于这里的问题,并使用在这里find的代码我试图加载视图是在一个单独的DLL项目中embedded资源,原始问题的作者说,他已经成功做到这一点 – 但我不能得到它的工作看起来MVC视图引擎正在拦截请求并仍然在查看文件系统。 例外: Server Error in '/' Application. The view 'Index' or its master could not be found. The following locations were searched: ~/Views/admin/Index.aspx ~/Views/admin/Index.ascx ~/Views/Shared/Index.aspx ~/Views/Shared/Index.ascx ~/App/Views/admin/Index.aspx ~/App/Views/admin/Index.ascx ~/App/Views/Shared/Index.aspx ~/App/Views/Shared/Index.ascx 我正在使用一个CustomViewEngine ,就像Rob Connery的/ App结构一样,如下所示: public class CustomViewEngine : WebFormViewEngine { public CustomViewEngine() { MasterLocationFormats = new[] { "~/App/Views/{1}/{0}.master", "~/App/Views/Shared/{0}.master" }; ViewLocationFormats = new[] […]