После нескольких дней возни, ломания и исправления я нашел решение, которое сработало для меня.
Как было предложено выше, я передал свою строку из функции заполнения данных в действие, а затем в представление с использованием модели. Однако это было не так просто. функция createchart ожидает объект json (мне потребовалось время, чтобы понять, в чем проблема). передача строки как есть переменной в частичном представлении сделала много ужасных вещей с двойными кавычками и одинарными кавычками, которые были внутри строки. В конце концов я понял, что строку нужно передавать как json, чтобы правильно видеть цитаты в представлении.
Как только это было рассортировано, я просто убирал все, что я сломал, пытаясь выяснить проблему.
Фрагмент частичного просмотра
var string = JSON.parse(@(Html.Raw(Json.Encode(Model.flare))));
//data = flare;
createchart(string);
Фрагмент контроллера
public ActionResult RefreshView(int id)
{
CWDataSetsEntities aCWDatasetEntity = new CWDataSetsEntities();
int intCountryID = Convert.ToInt32(id);
CWCountriesISOandCoordinates aCWCountry = new CWCountriesISOandCoordinates();
aCWCountry = (from x in aCWDatasetEntity.CWCountriesISOandCoordinates where x.index == intCountryID select x).SingleOrDefault();
string Country = aCWCountry.Country_Name;
Models.PartitionViewModels Data = sb_admin_2.Web.ContentBuilder.PartitionBuilder.TradeVisual("Export", Country, "X2015");
//sb_admin_2.Web.Models.PartitionViewModels.Javascript = Data;
ViewBag.Data = Data;
return PartialView("DataPartition", Data);
}
Сценарий события
<script>
$(function () {
$("#Partitionbox").change(function (e) {
var val = $(this).val();
$("#DataPart").remove();
$('#hint').remove();
$('#footer').remove();
$("#TestTarget").load("/Home/RefreshView/" + val);
});
});
I understand that you want to use the browsers default settings, i would also like an answer for that.
Meanwhile, you could do it manually.
MailAddress from = new MailAddress("from@mailserver.com");
MailAddress to = new MailAddress("to@mailserver.com");
MailMessage mm = new MailMessage(from, to);
mm.Subject = "Subject"
mm.Body = "Body";
SmtpClient client = new SmtpClient("proxy.mailserver.com", 8080);
client.Credentials = new System.Net.NetworkCredential("from@mailserver.com", "password");
client.Send(mm);
Http-прокси контролируют HTTP-трафик, у них редко что-то есть вообще делать с SMTP. Я никогда раньше не слышал о проксировании SMTP, ведь сам SMTP внутренне поддерживает цепочку «прокси» к SMTP-серверу назначения.
If the only access you have to the internet is through HTTP, then pretty much the only way you'll be able to do this is by setting up a VPS (or equiv) with SSH on port 443 and using corkscrew (or putty) to tunnel ssh through. From there it is a simple matter to forward smtp traffic over your ssh tunnel.
Be aware that you may be violating the companies computing policy if you do this.