2010-06-30 6 views
0

Я создал vCard из приложения asp.net + C#. В конечном итоге. браузеры появляются в поле «открыть с помощью/Сохранить как». Я не хочу появляться в этом поле. вместо этого я хочу напрямую установить сгенерированный файл .vcf для открытия с Outlook 2007 или 03. Что делать? Моего кода:Как открыть vCard bydefault в Outlook 2007/03?

S

ystem.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
      //vCard Begin 
      stringWrite.WriteLine("BEGIN:VCARD"); 
      stringWrite.WriteLine("VERSION:2.1"); 
      //Name 
      stringWrite.WriteLine("N:" + nameLast + ";" + nameFirst + 
            ";" + nameMiddle + ";" + nameTitle); 
      //Full Name 
      stringWrite.WriteLine("FN:" + nameFirst + " " + 
            nameMiddle + " " + nameLast); 
      //Organisation 
      stringWrite.WriteLine("ORG:" + company + ";" + department); 
      //URL 
      stringWrite.WriteLine("URL;WORK:" + uRL); 
      //Title 
      stringWrite.WriteLine("TITLE:" + title); 
      //Profession 
      stringWrite.WriteLine("ROLE:" + profession); 
      //Telephone 
      stringWrite.WriteLine("TEL;WORK;VOICE:" + telephone); 
      //Fax 
      stringWrite.WriteLine("TEL;WORK;FAX:" + fax); 
      //Mobile 
      stringWrite.WriteLine("TEL;CELL;VOICE:" + mobile); 
      //Email 
      stringWrite.WriteLine("EMAIL;PREF;INTERNET:" + email); 
      //Address 
      stringWrite.WriteLine("ADR;WORK;ENCODING=QUOTED-PRINTABLE:" + ";" + 
            office + ";" + addressTitle + "=0D" + 
            streetName + ";" + city + ";" + 
            region + 

";" + postCode + ";" + country); 

     //Revision Date 
     //Not needed 
     //stringWrite.WriteLine("REV:" + DateTime.Today.Year.ToString() + 
     //   DateTime.Today.Month.ToString() + DateTime.Today.Day.ToString() + "T" + 
     //   DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + 
     //   DateTime.Now.Second.ToString() + "Z"); 
     //vCard End 
     stringWrite.WriteLine("END:VCARD"); 
     response.Write(stringWrite.ToString()); 
     response.AppendHeader("Hi", "PMTS"); 
     response.End(); 

ответ

0

Если я правильно вас понять, проблема в том, что вы получаете диалог запуска или загрузите когда вы имеете в виду для визитной карточки, чтобы просто открыть из паутина.

Предполагая, что является на самом деле то, что Вы желаете, я считаю, нужно только установить свой ответ на один из типов визитной карточки MIME (text/x-vcard, text/directory;profile=vCard или text/directory).

Response.ContentType = "text/x-vcard"; 

Я надеюсь, что это поможет.

- EDIT -

Используя следующий код, я правильно будет предложено открыть или сохранить (и Open открывает файл в Outlook) в Internet Exploder. К сожалению, Chrome по-прежнему не поддерживает открывающиеся файлы, и кажется, что есть окно загрузки несколько надолго. Попробуйте использовать следующий код в IE, и вы поймете, что я имею в виду; оно работает. Кроме того, на стороне примечания - я бы смог повторить ваш код несколько проще, если правильно отформатирован. Вы можете изменить свой пост, выделить код и нажать значок «101010»? Большое спасибо, и удачи!

using System; 
using System.IO; 
using System.Web.UI; 

namespace WebApplication1 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     private string nameLast = "May"; 
     private string nameFirst = "Lance"; 
     private string nameMiddle = "R."; 
     private string nameTitle = "Mr."; 
     private string company = "CoreLogic"; 
     private string department = "Development"; 
     private string uRL = "http://www.lancemay.com"; 
     private string title = "Application Developer Senior"; 
     private string profession = "Developer"; 
     private string telephone = "(123) 555-1212"; 
     private string fax = "(321) 555-1212"; 
     private string mobile = "(555) 555-1212"; 
     private string email = "[email protected]"; 
     private string office = "Louisville"; 
     private string addressTitle = ""; 
     private string streetName = "123 Easy St."; 
     private string city = "Louisville"; 
     private string region = "KY"; 
     private string postCode = "40223"; 
     private string country = "US"; 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      StringWriter stringWrite = new StringWriter(); 
      System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
      //vCard Begin 
      stringWrite.WriteLine("BEGIN:VCARD"); 
      stringWrite.WriteLine("VERSION:2.1"); 
      //Name 
      stringWrite.WriteLine("N:" + nameLast + ";" + nameFirst + ";" + nameMiddle + ";" + nameTitle); 
      //Full Name 
      stringWrite.WriteLine("FN:" + nameFirst + " " + nameMiddle + " " + nameLast); 
      //Organisation 
      stringWrite.WriteLine("ORG:" + company + ";" + department); 
      //URL 
      stringWrite.WriteLine("URL;WORK:" + uRL); 
      //Title 
      stringWrite.WriteLine("TITLE:" + title); 
      //Profession 
      stringWrite.WriteLine("ROLE:" + profession); 
      //Telephone 
      stringWrite.WriteLine("TEL;WORK;VOICE:" + telephone); 
      //Fax 
      stringWrite.WriteLine("TEL;WORK;FAX:" + fax); 
      //Mobile 
      stringWrite.WriteLine("TEL;CELL;VOICE:" + mobile); 
      //Email 
      stringWrite.WriteLine("EMAIL;PREF;INTERNET:" + email); 
      //Address 
      stringWrite.WriteLine("ADR;WORK;ENCODING=QUOTED-PRINTABLE:" + ";" + office + ";" + addressTitle + "=0D" + streetName + ";" + city + ";" + region + ";" + postCode + ";" + country); 

      stringWrite.WriteLine("END:VCARD"); 
      Response.ContentType = "text/x-vcard"; 
      Response.Write(stringWrite.ToString()); 
      Response.AppendHeader("Hi", "PMTS"); 
      Response.End(); 
     } 
    } 
} 
+0

да, вы совершенно поняли мой вопрос. Но я использовал эти мимы. Но не работал Лэнс. не могли бы вы рассказать или спросить кого-нибудь для этого.please.I просто хочу избежать этого диалогового окна «запуск или загрузка». и хотите встроить (по C# -коду), установленному в сгенерированный .vcf-файл как outlook. –

+0

@Lalit: После повторного чтения вашего комментария, похоже, вы хотите сделать то, что не можете. Вы не можете принудительно выполнять какое-либо действие (Google Chrome) и время, которое вы можете, браузер все еще получает ответ; а не сервер (сервер может только сделать предложение, которое задает тип MIME). – Lance

 Смежные вопросы

  • Нет связанных вопросов^_^