直接导航到页面的System.NullReferenceException

时间:2016-01-15 13:14:14

标签: asp.net-mvc razor

我尝试直接访问应用程序中的页面时遇到问题。当我在应用程序中导航到页面时,一切都能正常工作。

<input type="button"
               class="btn btn-primary"
               id="calulate"
               value="Finanzierungsrate berechnen"
               onclick="location.href ='@Url.Action("calculate", "RatesKit", new { id = "bc338d8d-58b9-4867-9730-6b92a516a496"}) '" />

这里是控制器方法:

[HttpGet]
public ActionResult calculate(string id, string objectDescription, string objectPrice)
{
    if (string.IsNullOrEmpty(id))
    {
        return RedirectToAction("NotValid");
    }
    else
    {
        if (Validator.ValidateToken(id, out bob))
        {
            OfferRequest request = Session["RequestOffer"] as OfferRequest;
            if (request != null)
            {
                ViewData["Dealer"] = bob;

                //..
            }
        }
        else
        {
            return RedirectToAction("NotValid");
        }

        return View();
    }
}

当我使用F5重新加载页面时,页面加载时没有出现问题。但是,如果我尝试直接访问该网站(只需在浏览器的地址栏中输入),我收到以下错误消息:

System.NullReference

当然,此时此刻并没有错!如果我删除了Razor语法@DateTime.Now.Year,则错误位于与Razor语法不同的位置。

我不知道,为什么只有直接访问才会出错。

我已经看过类似的问题,遗憾的是没有解决我的问题。

System.NullReference Exception occurred in App_Web_XXX.dll - Error in Partial View System.NullReferenceException in App_Web_*.dll

感谢您的任何建议

她的整页:

@{
    ViewBag.Title = "Finanzierungsrate berechnen";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<meta charset="utf-8" />
    <div align="center">
    <h2>Finanzierungsrate berechnen</h2>
    <div style="max-width:700px;">
        <div id="ratesView">           
            @{Html.RenderPartial("ViewCalculateRate", ViewData);}
        </div>
    </div>
</div>
<table>
    <tr>
        <td valign="top" class="footerContent" style="padding-top: 20px;color: #878780; font-size: 11px; text-align: left;">
            © @DateTime.Now.Year XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  Alle Rechte vorbehalten. <a href="@Url.Action("Impressum", "RatesKit", new { target = "_blank" })" style="color: #878780; text-decoration:underline; text-decoration-color:#878780">Impressum</a>
        </td>
    </tr>
    <tr valign="top" class="footerContent" style="padding-top: 20px; color: #878780; font-size: 11px; text-align: left;">
        <td>Wir übernehmen keine Gewähr für die Richtigkeit dieser Berechnung.</td>
    </tr>
</table>
<div id="backbutton" style="padding:20px 0; display:inline-block;">
    <input type="button"
           class="btn btn-primary btn-xs"
           id="backButton"
           value="Zurück"
           onclick="location.href ='@Request.UrlReferrer.AbsoluteUri'" />
</div>

1 个答案:

答案 0 :(得分:2)

我明白了......

<div id="backbutton" style="padding:20px 0; display:inline-block;">
    <input type="button"
           class="btn btn-primary btn-xs"
           id="backButton"
           value="Zurück"
           onclick="location.href ='@Request.UrlReferrer.AbsoluteUri'" />
</div>
当我直接进入页面时,

Request不存在。所以我无法创建按钮......

THX有时您必须从外部查看代码时间。