ViewEngine [ArgumentNullException: значение не может быть нулевым.Имя параметра: вид] - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь создать представление с моделью данных данных.Преобразуйте это в строку, отправьте по почте.Он прекрасно работает, когда я запускаю его на локальном сервере, но при загрузке на 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 объекта............ ......

...