2013-09-18 4 views
1

У меня есть рабочая веб-почта, и я хочу отправить встроенное изображение.Отправка встроенного изображения в webmail

LinkedResource imagelink = new LinkedResource(Server.MapPath(".") + @"..\Content\img\GladSmiley.png", "image/png"); 

когда я использовать код над ним будет искать MapPath к ведьме изображения находится в папке \ Img \ содержимого \ Projectname. Но метод mappath ищет img в \ projectname \ home \ content \ img, поэтому по какой-то причине он добавляет домашнюю папку в mappath: S Есть ли способ обойти эту проблему? или я делаю что-то неправильно?

ответ

1

Попробуйте вместо этого:

LinkedResource imagelink = new LinkedResource(HostingEnvironment.MapPath("~/Content/img/GladSmiley.png"), "image/png"); 

Соответствующий бит, что вы найдете каталог/файл, как это:

HostingEnvironment.MapPath("~/Content/img/GladSmiley.png") 

Вы также можете использовать Server.MapPath с точно таким же синтаксисом, если вы хотите, но для этого вам нужен HttpContext (который у вас есть, но для того, чтобы он всегда работал, используйте HostingEnvironment.MapPath).

HostingEnvironment.MapPath("~/Content/img/GladSmiley.png") // works everywhere 
Server.MapPath("~/Content/img/GladSmiley.png") // needs HttpContext 

Смотрите это обсуждение для получения дополнительной информации, если вы заинтересованы: What is the difference between Server.MapPath and HostingEnvironment.MapPath?

+0

Окей, кажется, хорошо, но я получаю плохие компиляции постоянную ошибку. –

+0

Странно (думаю, я сделал опечатку или что-то забыл). Вы получаете ту же ошибку, если используете «Server.MapPath» или «HostingEnvironment.MapPath»? Какая ошибка? –

+0

Я сделал опечатку. Изменили его –

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