C# ASP.NET MVC中模型中的持久化属性(使用绑定器?)

C# ASP.NET MVC中模型中的持久化属性(使用绑定器?),c#,asp.net-mvc,C#,Asp.net Mvc,给定以下代码: 模型 看法 有没有办法将传递的日志中的票证持久化?名称将输出为纯文本显示,这意味着不会有变量作为帖子的一部分传递回页面,因为它不是表单的一部分。解决方法是将其放在隐藏字段中,或作为更新方法的一部分查找模型,然后对检索到的项调用UpdateModel。名称将输出为纯文本显示,这意味着不会有变量作为帖子的一部分传递回页面,因为它不是表单的一部分。解决办法是把它放在一个隐藏的字段中或者查找你的模型作为你的更新方法的一部分,然后在被检索的项目上调用Update模型。你可能只在一个隐藏的字

给定以下代码:

模型 看法
有没有办法将传递的
日志中的
票证
持久化?

名称将输出为纯文本显示,这意味着不会有变量作为帖子的一部分传递回页面,因为它不是表单的一部分。解决方法是将其放在隐藏字段中,或作为更新方法的一部分查找模型,然后对检索到的项调用UpdateModel。

名称将输出为纯文本显示,这意味着不会有变量作为帖子的一部分传递回页面,因为它不是表单的一部分。解决办法是把它放在一个隐藏的字段中或者查找你的模型作为你的更新方法的一部分,然后在被检索的项目上调用Update模型。

你可能只在一个隐藏的字段中存储这个票名,但是更合理的是,你可能想简单地接受HTTP工作的方式而不是去对抗它。.我怀疑这是HTTP问题。它是。。因为你没有以表格的形式寄回机票。。您正在发送日志的重要性属性和消息属性。。事实上,您发送到视图的内容并不是回发中返回的内容。。它是一个子集(特意如此)。你可能只需在一个隐藏的字段中存储票名,但更合理的是,你可能想简单地接受HTTP的工作方式而不是对抗它。我怀疑这是一个HTTP问题。因为你没有以表格的形式寄回机票。。您正在发送日志的重要性属性和消息属性。。事实上,您发送到视图的内容并不是回发中返回的内容。。它是一个子集(有意如此)。我在没有
log.Ticket)%%>
的情况下进行了测试,但它仍然是
null
。您需要添加隐藏字段,而不是删除标签。尝试Html.Hidden(l=>l.Ticket.Name)(语法取决于MVC v2)或类似的smth。我在没有
log.Ticket)%%>
的情况下进行了测试,它仍然是
null
。您需要添加隐藏字段,而不是删除标签。尝试Html.Hidden(l=>l.Ticket.Name)(语法取决于MVC v2)或类似smth的方法。
class Log
{
   ...
   Ticket Ticket { get; set; }
   string Message { get; set; }
}
class Ticket
{
   ...
   Importance Importance { get; set; }
   string Name { get; set; }
   ...
}
<%@ Language="C#" Inherits="System.Web.Mvc.ViewPage<Models.Log>" %>
...
<%= Html.DisplayFor(l => l.Ticket.Name) %>
<%= Html.EditorFor(l => l.Message) %>
<%= Html.EditorFor(l => l.Ticket.Importance) %>
...
[HttpGet]
public ActionResult Update(int id)
{
    Ticket t = _tickets.Get(id);
    return View(new Log { Ticket = t });
}

[HttpPost]
public ActionResult Update(Log l)
{
   // My problem is here:
    l.Ticket.Name; // This is null
    l.Ticket.Importance; // while this one is still set
}