ViewEngine [ArgumentNullException:Value不能为null。参数名称:view]

时间:2018-05-30 11:07:17

标签: c# asp.net-mvc razor viewengine

我尝试使用数据模型创建视图。将其转换为字符串邮件。当我在localserver上运行它时工作正常但是当上传到azure时崩溃说: [ArgumentNullException:Value不能为null。参数名称:view]

当不再在localserver上运行时,无法弄清楚为什么view为null。

通过弄乱视图的路径,我可以在localserver上获得与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:Value不能为null。 参数名称:view]    System.Web.Mvc.ViewContext..ctor(ControllerContext controllerContext,IView view,ViewDataDictionary viewData,TempDataDictionary tempData,TextWriter writer)+233    *********** \ SpoRec \ Models \ SendEmail.cs中的SpoRec.Models.SendEmail.MailViewToString(ControllerContext context,String viewPath,TipsFormModel FormModel):61    ************ Mail \ SpoRec \ Controllers \ HomeController.cs中的SpoRec.Controllers.HomeController.PostTip(TipsFormModel RecivedForm):163    lambda_method(Closure,ControllerBase,Object [])+104

System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object []参数)+14

System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary`2参数)+169

System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary`2参数)+27 ............ ......

0 个答案:

没有答案