Я пытаюсь создать представление с моделью данных данных.Преобразуйте это в строку, отправьте по почте.Он прекрасно работает, когда я запускаю его на локальном сервере, но при загрузке на Azure происходит сбой, говоря: [ArgumentNullException: значение не может быть нулевым.Имя параметра: представление]
Невозможно выяснить, почему представление является нулевым, если он больше не работает на локальном сервере.
Путем путаницы с путем представления я могу получить то же сообщение об ошибке наЛокальный сервер как на версии, которая на Azure
public static string MailViewToString(ControllerContext context, string viewName, TipsFormModel FormModel)
{
context.Controller.ViewData.Model = FormModel;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindView(context, viewName, null);
var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(context, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
// Контроллер
[HttpPost]
public ActionResult PostTip(TipsFormModel RecivedForm)
{
TipsList SpTipsList = new TipsList();
RecivedForm.CurrentUser = Context.Web.CurrentUser.Title;
var UploadedCv = RecivedForm.CV;
var UploadedDoc = RecivedForm.OtherDocument;
if (SavedJob != null)
{
RecivedForm.SelectedJob = SavedJob;
}
if (RecivedForm.CV != null)
{
UploadedCv = RecivedForm.CV;
}
if (RecivedForm.OtherDocument != null)
{
UploadedDoc = RecivedForm.OtherDocument;
}
//This function executes the tips and saves it into SP
SpTipsList.InsertTipSp(RecivedForm, Context);
string mailString = SendEmail.MailViewToString(this.ControllerContext, "~/Views/Home/MailView.cshtml", RecivedForm);
SendEmail.SendMail(mailString, UploadedCv, UploadedDoc, Context);
return View("PostTip");
}
// Просмотр
@using (Html.BeginForm("PostTip", "Home", FormMethod.Post, new { id = "MainForm", enctype = "multipart/form-data" }))
{
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label class="control-label">Kandidatens förnamn:</label>
<div class="form-group vali">
@Html.TextBox("FirstName", null, new { @class = "form-control input-lg", Name = "FirstName", id = "FirstName", placeholder = "Maria" })
</div>
<label class="control-label">Kandidatens efternamn:</label>
<div class="form-group vali">
@Html.TextBox("LastName", null, new { @class = "form-control input-lg", Name = "LastName", id = "LastName", placeholder = "Gustavsson" })
</div>
<label class="control-label">LinkedIn:</label>
<div class="form-group vali">
@Html.TextBox("LinkedIn", null, new { @class = "form-control input-lg", Name = "LinkedIn", id = "LinkedIn", placeholder = "https://se.linkedin.com/in/" })
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label class="control-label">Kandidatens Email:</label>
<div class="form-group vali">
@Html.TextBox("Email", null, new { @class = "form-control input-lg", Name = "Email", id = "Email", placeholder = "example@internet.com" })
</div>
<label class="control-label">Kandidatens telefonnr:</label>
<div class="form-group vali">
@Html.TextBox("PhoneNumber", null, new { @class = "form-control input-lg", Name = "PhoneNumber", id = "Phone", placeholder = "XXXXXXXXXX" })
</div>
<label class="control-label">Kön:</label>
<div class="form-group">
<div> @Html.DropDownList("Gender", new SelectList(Enum.GetValues(typeof(TipFormViewModel.Gender))), new { data_style="btn-default btn-lg" ,title = "Kön", @class = "selectpicker form-control" }) </div>
</div>
</div>
<div class="clearfix"></div>
<br />
<div class="UploadDocument">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<div class="form-group vali">
<label class="control-label">CV:</label>
<input type="file" class="btn btn-default form-control" value="Browse" name="CV" /><br />
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<div class="form-group vali">
<label class="control-label">Andra dokument:</label>
<input type="file" class="btn btn-default form-control" value="Browse" name="OtherDocument" /><br />
<br />
</div>
</div>
</div>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="form-group vali txtarea">
<label class="control-label">Övrig information:</label>
@Html.TextArea("Comment", null, new { @class = "form-control textAreaSize", placeholder = "Max 2000 tecken", rows = "8", maxlength = "2000" })
<div id="Counter">
Tecken kvar: 2000 / 2000
</div>
<br />Ex. Vad har du för relation till kandidaten? Vad är hen duktig på? När kan vi bäst nå kandidaten? Övrig relevant information.<br />
</div>
<br />
<br />
<div class="clearfix"></div>
<div>
<label>
Är kandidaten medveten om ditt tips?
</label>
<div id="tipLabelNote">Notera att bonusen enbart betalas ut om den tipsade kandidaten är informerad i förväg.</div>
@Html.CheckBox("Asked", new { @class = "checkbox-lg" })
<label class="checkbox-label" id="checkBoxQuest">JA</label>
<br />
<br />
<input type="submit" value="Skicka" class="btn custombtn-success slight-margin btn-lg" id="SubBtn">
<div>
<br />
<span class="login-fail">@ViewBag.DummyError</span>
<span class="login-fail" id="ErrorValidation"></span>
</div>
</div>
</div>
<div class="clearfix"></div>
}
</div>
Сообщение об ошибке:
[ArgumentNullException: значение не может быть нулевым.Имя параметра: представление] System.Web.Mvc.ViewContext..ctor (ControllerContext controllerContext, представление IView, ViewDataDictionary viewData, TempDataDictionary tempData, пишущий преобразователь TextWriter) +233 SpoRec.Models.SendEmail.MailViewToString (контекст ControllerContextModelF)в *********** \ SpoRec \ Models \ SendEmail.cs: 61 SpoRec.Controllers.HomeController.PostTip (TipsFormModel RecivedForm) в ************ Mail \ SpoRec \Controllers \ HomeController.cs: 163 lambda_method (Closure, ControllerBase, Object []) + 104
System.Web.Mvc.ActionMethodDispatcher.Execute (контроллер ControllerBase, параметры Object []) + 14
System.Web.Mvc.ReflectedActionDescriptor.Execute (параметры ControllerContext controllerContext, параметры IDictionary`2) + 169
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (ControllerContext controllerContext, параметры ActionDescriptor ID объекта............ ......