使用预编译视图部署webapp

时间:2017-12-20 07:59:24

标签: asp.net asp.net-mvc webdeploy

我想使用Web部署方法将Web应用程序部署到测试服务器。应用程序正常构建没有问题,并在本地和测试服务器上正常工作当我想在部署期间使用预编译设置时出现问题。在这个过程的中间,我在VerifyCode.cshtml文件中遇到了大量错误。事情是我甚至没有在我的视图文件夹中看到VerifyCode的视图。问题出在哪儿?我并行使用匿名和Windows身份验证。

我的发布设置: enter image description here enter image description here

我收到的示例错误:

The name 'ViewBag' does not exist in the current context
The name 'Scripts' does not exist in the current context
The name 'Model' does not exist in the current context
'HtmlHelper' does not contain a definition for 'TextBoxFor' ...

等等......

VerifyCode.cshtml代码:

@model App.Models.VerifyCodeViewModel
@{
    ViewBag.Title = "Verify";
}

<h2>@ViewBag.Title.</h2>

@using (Html.BeginForm("VerifyCode", "Account", new { ReturnUrl = Model.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) {
    @Html.AntiForgeryToken()
    @Html.Hidden("provider", @Model.Provider)
    @Html.Hidden("rememberMe", @Model.RememberMe)
    <h4>Enter verification code</h4>
    <hr />
    @Html.ValidationSummary("", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(m => m.Code, new { @class = "col-md-2 control-label" })
        <div class="col-md-10">
            @Html.TextBoxFor(m => m.Code, new { @class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <div class="checkbox">
                @Html.CheckBoxFor(m => m.RememberBrowser)
                @Html.LabelFor(m => m.RememberBrowser)
            </div>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" class="btn btn-default" value="Submit" />
        </div>
    </div>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

1 个答案:

答案 0 :(得分:0)

好的,我设法让它发挥作用。这个问题很简单。我不知道我的项目中是如何在随机位置调用VerifyCode的。

有趣的是,VS搜索文本工具无法找到它。我做了一些研究,例如here并发现VS中的文本搜索存在一些问题,但并不总是按预期工作。

因此,虽然预编译了视图,但所有视图文件都与这个偷偷摸摸的文件一起被删除而没有引用。