小编Luc*_*Sam的帖子

ASP.NET MVC:如何让浏览器打开并显示PDF而不是显示下载提示?

好的,所以我有一个生成PDF并将其返回给浏览器的动作方法.问题是,IE不会自动打开PDF,而是显示下载提示,即使它知道它是什么类型的文件.Chrome做同样的事情.在这两种浏览器中,如果我单击指向存储在服务器上的PDF文件的链接,它将打开正常,并且永远不会显示下载提示.

以下是调用以返回PDF的代码:

public FileResult Report(int id)
{
    var customer = customersRepository.GetCustomer(id);
    if (customer != null)
    {
        return File(RenderPDF(this.ControllerContext, "~/Views/Forms/Report.aspx", customer), "application/pdf", "Report - Customer # " + id.ToString() + ".pdf");
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

这是服务器的响应头:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 16 Sep 2010 06:14:13 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 2.0
Content-Disposition: attachment; filename="Report - Customer # 60.pdf"
Cache-Control: private, s-maxage=0
Content-Type: application/pdf
Content-Length: 79244
Connection: Close
Run Code Online (Sandbox Code Playgroud)

我是否必须在响应中添加一些特殊内容才能让浏览器自动打开PDF?

任何帮助是极大的赞赏!谢谢!

pdf asp.net-mvc

40
推荐指数
2
解决办法
3万
查看次数

实体框架代码优先:如何在两个表之间创建一对多和一对一的关系?

这是我的模型:

public class Customer
{
    public int ID { get; set; }

    public int MailingAddressID { get; set; }
    public virtual Address MailingAddress { get; set; }

    public virtual ICollection<Address> Addresses { get; set; }
}

public class Address
{
    public int ID { get; set; }

    public int CustomerID { get; set; }
    public virtual Customer Customer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

客户可以拥有任意数量的地址,但这些地址中只有一个可以是邮寄地址.

如果我只使用一个,我可以得到One to One关系,One to Many工作得很好,但是当我尝试介绍两者时,我在Addresses表上获得了多个CustomerID键(CustomerID1,CustomerID2,CustomerID3).我真的把头发撕成了这个.

为了映射一对一的关系,我使用这里描述的方法http://weblogs.asp.net/manavi/archive/2011/01/23/associations-in-ef-code-first-ctp5-part- 3,一到一个外键,associations.aspx

c# entity-framework entity-framework-ctp5

19
推荐指数
1
解决办法
2万
查看次数

ASP.NET MVC:如何显示多行文本?

查看型号:

public class Note
{
    [DataType(DataType.MultilineText)]
    public string Text { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

默认编辑器模板呈现<textarea>保留换行符的元素.

默认显示模板将文本呈现为单个字符串,并删除换行符.

我试过这个,但它不起作用:

〜/查看/共享/ EditorTemplates/MultilineText.cshtml

@model string

@Html.Raw(Model.Replace(System.Environment.NewLine, "<br />"))
Run Code Online (Sandbox Code Playgroud)

我可以做一些愚蠢的事情@Html.Raw(Model.Replace("e", "<br />")),它会起作用但当然我只想替换<br />元素的换行符!我也试过使用@"\n",但也没用.

有任何想法吗?

谢谢!

c# asp.net-mvc razor

12
推荐指数
4
解决办法
3万
查看次数

ASP.NET MVC:如何从HtmlHelper实例获取程序集信息?

我在与MVC应用程序程序集分开的程序集中有一个HtmlHelper扩展方法.在扩展方法中,我想获得MVC应用程序程序集的版本号.这可能吗?

调用程序集是剃刀视图动态程序集,因此无济于事.是否有一些嵌套在HtmlHelper中的对象可以为我提供MVC应用程序组件的版本号?我一直在探索HtmlHelper类文档,但到目前为止还没有找到解决我问题的方法.

谢谢!

c# reflection asp.net-mvc asp.net-mvc-3

11
推荐指数
2
解决办法
8743
查看次数

升级到Entity Framework 4.3.1后出现未处理的异常

错误:

未处理的异常:System.Data.SqlClient.SqlException:操作失败,因为表'PrivateMakeUpLessons'上已存在名为'IX_ID'的索引或统计信息.

模型(简化,在单独的测试项目中构建以进行调试):

public abstract class Lesson
{
    public Guid ID { get; set; }
    public string Room { get; set; }
    public TimeSpan Time { get; set; }
    public int Duration { get; set; }
}

public abstract class RecurringLesson : Lesson
{
    public int DayOfWeek { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public string Frequency { get; set; }
}

public class PrivateLesson : RecurringLesson
{
    public …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first

10
推荐指数
2
解决办法
2572
查看次数

ASP.NET MVC/C#:我可以使用Html.ActionLink()创建有效的自定义HTML属性吗?

我需要在我使用Html.ActionLink()构建的锚上放置一个自定义属性

<%: Html.ActionLink("Delete", "Delete", new { id = Model.ID }, new { data-icon = "ui-icon-trash" })%>
Run Code Online (Sandbox Code Playgroud)

使用正确的"data-"前缀,根据http://www.w3.org/TR/html5/elements.html#attr-data,我从Visual Studio得到以下错误.

无效的匿名类型成员声明符.必须使用成员分配,简单名称或成员访问声明匿名类型成员.

由于我不能在匿名类型中使用连字符,因此添加自定义HTML属性的最佳方法是什么?

asp.net-mvc html5 custom-attributes

9
推荐指数
1
解决办法
4477
查看次数

ASP.NET MVC:如何将视图,脚本和内容文件添加为链接以便跨项目共享?(通过VS中的"添加为链接")

我有一个我想要分享的常见Layout.cshtml文件.当我将文件添加为项目中的链接时(通过添加现有项>添加为链接),我收到一个错误,当我运行应用程序时无法找到它.如果我将构建操作设置为"始终复制",它会将文件复制到构建目录,但是我仍然会收到无法找到文件的错误(也许我可以以某种方式指示VS将其复制到相应的目录中?).

我遇到了这个问题:ASP.NET 2项目共享相同的文件,但答案非常复杂和丑陋,现在我正在玩很多不同的结构和重构方法,所以我不想通过一些大生产只是为了移动几个不同的文件.

那么如何在两个应用程序之间轻松共享这些类型的文件呢?

谢谢!

asp.net-mvc file visual-studio asp.net-mvc-3

9
推荐指数
1
解决办法
2818
查看次数

使用Entity Framework Code First时创建外键属性有什么意义?

在查看本网站上的问题和答案并阅读一些关于Code First开发的Google排名前列的教程时,我经常会看到以下模式......

public class Category
{
    public Category()
    {
        Products = new Collection<Product>();
    }
    public Guid ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

public class Product
{
    public Guid ID { get; set; }
    public string Name { get; set; }
    public DateTime DateAdded { get; set; }
    public Guid CategoryID { get; set; } // Seemingly redundant property
    public virtual Category Category { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first

9
推荐指数
1
解决办法
1271
查看次数

ASP.NET MVC:如何让我的业务规则验证冒泡到表示层?

对于我的每个业务实体,我都有一个相应的视图模型.

我有一个通用的CRUD控制器,其工作方式如下:

    [HttpPost]
    public virtual ActionResult Create(TViewModel model, int? id)
    {
        // Validate input
        if (!ModelState.IsValid)
            return Json(Failure(createView, model.SelectLists(repository)));

        // Prepare Model
        var entity = new TModel();

        // Add to repository
        UpdateModel(entity);
        repository.Add(entity);
        repository.Save();
        return Json(CreateSuccess(entity));
    }
Run Code Online (Sandbox Code Playgroud)

我在视图模型属性上使用数据注释,这对于简单的输入验证非常有用.

现在我有一个案例,我想确保不会偶然创建重复记录.

我的第一直觉是将这个逻辑放在存储库的Add方法中.这个实现很简单,但是如何让存储库添加模型状态错误并将一些有用的信息返回给用户?我觉得必须有一个解决方案,但我没有太多的运气搜索.

谢谢你的帮助!

c# asp.net-mvc

6
推荐指数
1
解决办法
1505
查看次数

ASP.NET MVC 3:支持HTML5多文件上传?

我可以用吗:

<input type="file" name="files" id="files" multiple="multiple" />
Run Code Online (Sandbox Code Playgroud)

并将其绑定到:

[HttpPost]
public ActionResult Upload(IEnumerable<HttpPostedFileBase> files)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在为现代浏览器编写一个Web应用程序,不必担心IE,所以我想避免使用Flash.files当我发布表单时,现在总是为空.有什么方法可以让它在MVC 3中运行吗?

谢谢!

asp.net-mvc html5

6
推荐指数
1
解决办法
6589
查看次数