火花视图引擎Html.TextArea错误?

我有一个奇怪的人.我试图仅使用TextArea帮助器来渲染标准文本区域:

    <p>
        <label for="Message">Message:</label>
        ${ Html.TextArea("IssueText") }
        ${ Html.ValidationMessage("IssueText","*") }
    </p>

还有我的控制器

   public ActionResult Contact() {
            return View();
    }
  [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Contact(FormCollection form) {
            Seller user = _session.AuthenticatedSeller;
            ServiceTicket ticket = new ServiceTicket(user,form["IssueText"],form["ContactReason"]);
            if (ticket.IsValid) {
                _servicetTicketRepository.Add(ticket);
                _servicetTicketRepository.Commit();
                return RedirectToAction("Index","MyPlace");
            }

            ModelState.AddModelErrors(ticket.GetRuleViolations());
            return View();
        }

在页面的第一次加载中,它可以正常工作并呈现textarea

Before http://cadred.net/personal/contact-before.png

但是,当我提交表单进行测试验证时,它不再呈现文本区域

After http://cadred.net/personal/contact-after.png

最佳答案
之所以得到火花代码而不是测试区域,是因为它在尝试执行html.textarea相关语句时发生了null ref异常.

如下重新处理视图,您将可以在调试器中分解由spark生成的视图代码.

<p>
  <label for="Message">Message:</label>
# System.Diagnostics.Debugger.Break();
  ${ Html.TextArea("IssueText") }
  ${ Html.ValidationMessage("IssueText","*") }
</p>

现在,您可以F5项目,并且您将获得一个对话框,要求您在单击视图时启动调试器,第一次忽略它(单击No),然后第二次启动调试器(在您单击Submit之后).该列表应包括您从中运行项目的VS实例,选择该实例并离开.

寻找空值,否则在呈现文本区域的try catch和它的catch处理程序中删除断点.希望您将获得足够的信息,以使您能够确定正在发生的事情.

相关文章

HTML代码中要想改变字体颜色,常常需要使用CSS样式表。CSS是...
HTML代码如何让字体盖住图片呢?需要使用CSS的position属性及...
HTML代码字体设置 在HTML中,我们可以使用标签来设置网页中的...
在网页设计中,HTML代码的字体和字号选择是非常重要的一个环...
HTML(Hypertext Markup Language,超文本标记语言)是一种用...
外链是指在一个网页中添加一个指向其他网站的链接,用户可以...