C# 如何在控件中打印值-MVC3
我想打印存储在控制器对象中的值。我试图寻找答案,但没有找到正确的答案。请帮忙C# 如何在控件中打印值-MVC3,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我想打印存储在控制器对象中的值。我试图寻找答案,但没有找到正确的答案。请帮忙 //my code in control public ActionResult PrintOutput() { ModalClass myObject = new ModalClass myObject.load(str); ViewBag.myOject = myOje
//my code in control
public ActionResult PrintOutput()
{
ModalClass myObject = new ModalClass
myObject.load(str);
ViewBag.myOject = myOject.ToString();
return View("PositionPrint");
}
//In view page I have created a **PartialView**. Inside partial view I
// have given below code alone
@Html.Raw(@ViewBag.myOject)
不能将对象用作变量名-它是语言的关键字。控制器通常通过返回一个视图来“打印”值,该视图由视图包或自定义模型中的数据填充。如果只需要打印原始html字符串-
@html.raw(myObject)
在控制器操作中,您需要将值放在某个位置,以便视图可以访问它。例如:
public ActionResult PrintOutput(sting str)
{
Modalclass myObject = new Modalclass();
myObject.load(str);
ViewBag.myObject = myObject; //probably at least ToString() call is due here
return View();
}
在视图中,使用@Html.Raw(@ViewBag.myObject)
打印其中的内容
但你真的不应该试图打印出整个对象的内容。那是一种毫无意义的行为。(调试除外)必须具体。对象中的每个数据属性都应打印到视图上的特定ui元素。如果可能,请尽量避免使用动态神奇变量,如
ViewBag
和ViewData
。这些神奇的变量让你的代码难看始终尝试使用强类型
为您的视图设置一个ViewModel
。如果你想打印客户的详细信息。您可以像这样创建一个ViewModel(它只是一个POCO)
public class CustomerPrint
{
public string FirstName { set;get;}
public string JobTitle { set;get;}
}
@model YourNameSpaceName.CustomerPrint
现在,在控制器操作中,设置该值并将其传递给视图
public ActionResult PrintOutput()
{
var customerPrintVM=new CustomerPrint();
customerPrintVM.FirstName="Jon";
customerPrintVM.JobTitle="Developer";
return View(customerPrintVM);
}
因为我们正在传递CustomerPrint类的对象,所以我们的视图应该是强类型的。所以像这样改变你的观点
@model CustomerPrint
<h2>This is your view content</h2>
<p>@Model.FirstName</p>
<p>@Model.JobTitle</p>
@Html.Raw(Model.FirstName)
您可以使用此格式访问模型的属性
Model.PropertyName
(例如:Model.FirstName
),如果表达式不在代码块中,您需要在razor中使用@
。谢谢您的回复![ViewBag.\u ObjectPM=\u ObjectPM;]我已经给出了我在上面提到的代码,并在[return View(“PositionPrint”,\u ObjectPM);]和部分视图页面[@Html.Raw(@ViewBag.\u Object)]中给出了代码。。但是没有运气。我觉得我遗漏了一些东西,物体里的东西。Modalclass的源代码是什么?在问题正文中提供更多关于这个问题的代码,这样我们就有了一个材料来研究=)什么是ModalClass?它的来源在哪里?