我正在ASP.Net MVC(初学者)中开发一个新的应用程序,它来自ASP.Net中的旧应用程序,并且有一个查询,我应该如何将下面的代码行转换为MVC中的新代码?
HTML:
<div runat="server" id="dvLogList"></div>
的.cs:
dvLogList.InnerHtml = sb.ToString()
我需要将StringBuilder
附加的string
html
代码设置为dvLogList
innerhtml
答案 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>