如何在MVC控制器中使用它的Id?

时间:2016-11-23 06:26:04

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

我正在ASP.Net MVC(初学者)中开发一个新的应用程序,它来自ASP.Net中的旧应用程序,并且有一个查询,我应该如何将下面的代码行转换为MVC中的新代码?

HTML:

<div runat="server" id="dvLogList"></div>

的.cs:

dvLogList.InnerHtml = sb.ToString()

我需要将StringBuilder附加的string html代码设置为dvLogList innerhtml

4 个答案:

答案 0 :(得分:3)

您可以强烈输入您的观点。

作为一个例子,我有一个模型:

class DisplayModel
{
     public string str { get; set; }
}

在我的控制器中,我会将此模型传递给我的观点:

public ActionResult Display()
{
    DisplayModel model = new DisplayModel
    {
         str = sb.ToString()
    }

    return View(model);
}

下一步是强烈输入我的视图。为此,可以将此行添加到顶部

@model DisplayModel // Most of the cases you need to include the namespace to locate the class

<div id="dvLogList">@Model.str</div> // now your model is accessible in view

最后,我们为什么要这样做? 与使用viewbag相比,这个有优势,因为有些情况我们需要将数据回发到控制器。视图中的值会自动绑定到您的模型(假设您在操作中声明了模型)。

// model is automatically populated 
public ActionResult Save(DisplayModel model)
{
}

如需进一步了解,请阅读此链接我无法抽出更多时间来改进此答案Strongly Typed Views

答案 1 :(得分:1)

在您的控制器中,使用ViewData(或ViewBag)

ViewData["dvLogList"] = "whatever content you want";

在您的视图中,您可以在任何需要的地方调用ViewData:

<div id = "dvLogList" >
        @(new HtmlString(ViewData["dvLogList"].ToString()))
</div>

希望这有帮助。

答案 2 :(得分:0)

您可以通过以下方式执行此操作:

在调用此视图的控制器操作中:

  public ActionResult Index()
    {
          ViewBag.HTMLContent = "your HTML Content";
          return View();
    }

在Index.cshtml视图中:

<div id="dvLogList">
      @Html.Raw("@ViewBag.HTMLContent")  /*assuming your content is HTML content not just string*/
</div>

答案 3 :(得分:0)

使用以下代码:

    //Controller Action 

    public ActionResult Index()
            {
                  ViewBag.HTMLContent = "Your HTML Data";
                  return View();
            }

    //View page code 

<div id="dvLogList"> 
  @Html.Raw((String)ViewBag.HTMLContent)
</div>