Questions tagged «asp.net-mvc-2»

ASP.NET MVC 2是ASP.NET MVC平台的第二个主要版本,此后已被ASP.NET MVC 3淘汰。

9
使用FileResult在Asp.Net MVC中下载任何类型的文件吗?
我建议我使用FileResult允许用户从我的Asp.Net MVC应用程序下载文件。但是我能找到的唯一示例始终与图像文件有关(指定内容类型为image / jpeg)。 但是,如果我不知道文件类型怎么办?我希望用户能够从我网站的文件区域下载几乎所有文件。 我已经读过一种执行此操作的方法(有关代码,请参见上一篇文章),除了一件事外,它实际上可以正常工作:另存为对话框中出现的文件名是通过文件路径与下划线连接的( folder_folder_file.ext)。另外,似乎人们认为我应该返回FileResult而不是使用我发现BinaryContentResult的自定义类。 有人知道在MVC中进行这种下载的“正确”方法吗? 编辑:我得到了答案(如下),但只是认为如果有人有兴趣,我应该发布完整的工作代码: public ActionResult Download(string filePath, string fileName) { string fullName = Path.Combine(GetBaseDir(), filePath, fileName); byte[] fileBytes = GetFile(fullName); return File( fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); } byte[] GetFile(string s) { System.IO.FileStream fs = System.IO.File.OpenRead(s); byte[] data = new byte[fs.Length]; int br = fs.Read(data, 0, …
228 c#  asp.net-mvc-2 

20
jQuery Ajax调用和Html.AntiForgeryToken()
根据我在互联网上的一些博客文章中所阅读的信息,我已经在我的应用程序中实施了缓解CSRF攻击的措施。这些帖子尤其是我实施的驱动力 来自ASP.NET和Web工具开发人员内容团队的ASP.NET MVC最佳实践 Phil Haack博客的跨站点请求伪造攻击剖析 ASP.NET MVC框架中的AntiForgeryToken- David Hayden博客的Html.AntiForgeryToken和ValidateAntiForgeryToken属性 基本上,这些文章和建议都说,为防止CSRF攻击,任何人都应实施以下代码: 1)[ValidateAntiForgeryToken]在接受POST Http动词的每个动作上添加 [HttpPost] [ValidateAntiForgeryToken] public ActionResult SomeAction( SomeModel model ) { } 2)在<%= Html.AntiForgeryToken() %>将数据提交到服务器的表单内添加帮助程序 <div style="text-align:right; padding: 8px;"> <%= Html.AntiForgeryToken() %> <input type="submit" id="btnSave" value="Save" /> </div> 无论如何,在我的应用程序的某些部分中,我都使用jQuery将Ajax POST进行到服务器,而没有任何形式。例如,在发生这种情况时,我让用户单击图像来执行特定操作。 假设我有一个包含活动列表的表。我在表的列上有一幅图像,上面写着“将活动标记为已完成”,当用户单击该活动时,我正在执行Ajax POST,如以下示例所示: $("a.markAsDone").click(function (event) { event.preventDefault(); $.ajax({ type: "post", dataType: …

12
如何使用Html.TextBoxFor设置默认值?
一个简单的问题,如果您使用ASP.NET MVC Framework 1中的Html Helper,则很容易在文本框上设置默认值,因为有重载Html.TextBox(string name, object value)。当我尝试使用Html.TextBoxFor方法时,我的第一个猜测是尝试以下不起作用的方法: <%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %> 我现在应该只坚持使用Html.TextBox(string,object)吗?

3
ModelState.AddModelError-如何添加非属性错误?
我正在检查数据库,Create(FooViewModel fvm){...}以查看fvm.prop1和fvm.prop2在该组合中是否已经存在;如果是这样,我想向模型状态添加错误,然后返回整个视图。我试过了: public ActionResult Create(FooViewModel fvm){ if (ThatComboAlreadyExists(fvm)) { ModelState.AddModelError("Model", "There is already one like that"); return View(fvm); } } ...但是我没有显示中的错误Html.ValidationSummary,我认为这是错误的出现位置。我怀疑“模型”不是正确的键,但是我找不到Google那样的东西。

8
显示两个日期时间值之间的时差
我正在从数据库中检索两个日期时间值。检索到值后,我需要两个值之间的差异。为此,我创建了一个timepan变量来存储两个日期值的差。 TimeSpan? variable = datevalue1 - datevalue2; 现在,我需要显示小时数中存储在Timespan变量中的差异。我指的是TimeSpan.TotalHours,但由于某些原因无法应用相同的内容。我怎么做?我在MVC项目上使用C#。我只需要显示以小时为单位的差值? 编辑:由于时间跨度是可为空的,所以我无法使用总小时数属性。现在,我可以通过执行TimeSpanVal.Value.TotalHours来使用它;


2
MVC2中的Html.Partial(视图,模型)和Html.RenderPartial(视图,模型)有什么区别(如果有)?
除了返回的类型以及您当然以不同的方式称呼它 <% Html.RenderPartial(...); %> <%= Html.Partial(...) %> 如果它们不同,为什么您要称呼一个而不是另一个? 定义: // Type: System.Web.Mvc.Html.RenderPartialExtensions // Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll using System.Web.Mvc; namespace System.Web.Mvc.Html { public static class RenderPartialExtensions { public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName); public static void RenderPartial(this HtmlHelper …


13
如何在MVC中设置默认路由(到区域)
好的,以前已经问过了,但是那里没有固定的解决方案。因此,对于我自己和其他可能会觉得有用的人而言。 在MVC2(ASP.NET)中,我想要它,因此当有人导航到该网站时,会指定一个默认区域。因此,导航到我的网站应该会将您发送到AreaZ中的ControllerX ActionY。 在Global.asax中使用以下路由 routes.MapRoute( "Area", "", new { area = "AreaZ", controller = "ControllerX ", action = "ActionY " } ); 现在,它的工作方式就像尝试提供正确的页面一样。但是,MVC继续在站点的根目录而不是Area文件夹中查找View。 有办法解决吗? 编辑 有一个“解决方案”,在ControllerX中,ActionY返回视图的完整路径。有点破解,但确实可以。但是,我希望有更好的解决方案。 public ActionResult ActionY() { return View("~/Areas/AreaZ/views/ActionY.aspx"); } 编辑: 当具有页面的HTML ActionLink时,这也成为问题。如果未设置该区域,则动作链接输出为空白。 所有这些是设计还是缺陷?

4
网址操作参数?
在列表控制器中, public ActionResult GetByList(string name, string contact) { var NameCollection = Service.GetByName(name); var ContactCollection = Service.GetByContact(contact); return View(new ListViewModel(NameCollection ,ContactCollection)); } 在ASPX页面中,我称之为 <a href="<%:Url.Action("GetByList","Listing" , new {name= "John"} , new {contact="calgary, vancouver"})%>"><span>People</span></a> 我在ASPX代码中有问题...我可以拉出名字john的记录。但是当我给时contact="calgary, vancouver",网页就会出错。 如何在中调用两个参数Url.Action。我尝试了以下内容,但这似乎也是错误的。 <a href="<%:Url.Action("GetByList","Listing" , new {name= "John" , contact= " calgary, vancouver" })%>"><span>People</span></a>

20
EditorFor()和html属性
Asp.Net MVC 2.0预览版提供了类似的帮助 Html.EditorFor(c => c.propertyname) 如果属性名称为字符串,则上面的代码将呈现一个texbox。 如果我想将MaxLength和Size属性传递给文本框或我自己的CSS类属性怎么办? 我需要为我的应用程序中的每种尺寸和长度组合创建一个模板吗?如果是这样,则不会使默认模板可用。


9
在ASP.NET MVC中对控制器进行简单的Ajax调用
我正在尝试开始使用ASP.NET MVC Ajax调用。 控制器: public class AjaxTestController : Controller { // // GET: /AjaxTest/ public ActionResult Index() { return View(); } public ActionResult FirstAjax() { return Json("chamara", JsonRequestBehavior.AllowGet); } } 视图: <head runat="server"> <title>FirstAjax</title> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function () { var serviceURL = '/AjaxTest/FirstAjax'; $.ajax({ type: "POST", …


2
如何将VaryByParam与多个参数一起使用?
在ASP.NET MVC2中,我使用OutputCache和VaryByParam属性。我只用一个参数就可以正常工作,但是当方法上有多个参数时,正确的语法是什么? [OutputCache(Duration=30, VaryByParam = "customerId"] public ActionResult Index(int customerId) { //I've got this one under control, since it only has one parameter } [OutputCache(Duration=30, VaryByParam = "customerId"] public ActionResult Index(int customerId, int languageId) { //What is the correct syntax for VaryByParam now that I have a second parameter? } …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.