我需要在具有.csv文件類型的ASP.NET MVC應用程序中創建ActionResult。建議使用文件擴展名創建ActionResult的方法
我會爲我的營銷合作伙伴提供一個'別打電話'的電子郵件列表,我希望它在文件類型中有一個.csv擴展名。然後它會自動在Excel中打開。
http://www.example.com/mailinglist/donotemaillist.csv?password=12334
我已經成功地做到了這一點如下,但我要確保這是這樣做的絕對是最好的和推薦的方式。
[ActionName("DoNotEmailList.csv")]
public ContentResult DoNotEmailList(string username, string password)
{
return new ContentResult()
{
Content = Emails.Aggregate((a,b)=>a+Environment.NewLine + b),
ContentType = "text/csv"
};
}
這個Actionmethod會響應上面的鏈接就好了。
我只是想知道是否有任何意外的衝突,像任何不同版本的IIS,任何類型的ISAPI過濾器或任何其他我不能想到現在這樣的文件擴展名的衝突。
我需要100%確定,因爲我會提供給外部合作伙伴,不希望稍後改變主意。我真的不能看到任何問題,但也許有些晦澀 - 或另一個更像「MVC」這樣做的方式。
謝謝!但你能澄清你的意思嗎?我所做的似乎有效 - 儘管這種方式更可取 – 2009-06-13 17:41:29
如果您的操作返回「.csv」文件,那麼您的客戶需要「打開」或「保存」它 - 因此您必須提供「Content-Disposition」標題(儘管它是可選的,請參閱http://www.ietf.org/rfc/rfc2183.txt)。沒有這個頭文件,在不同的瀏覽器/操作系統/機器上打開文件的過程可能會有所不同 – 2009-06-13 18:06:16