我是ASP.NET MVC3的新手,并且拼命想让一些简单的工作变得简单。我觉得我正在尝试做一些非常简单的事情。但是,我无法使用基本网格。我正在使用Visual Studio中的默认设置,这就是我所做的:
HomeController.cs
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
List<Person> test = new List<Person>();
test.Add(new Person("John", "Smith"));
test.Add(new Person("Bill", "Torr"));
return View(test);
}
public ActionResult About()
{
return View();
}
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string firstName, string lastName)
{
this.FirstName = firstName;
this.LastName = lastName;
}
}
Index.cshtml @ { ViewBag.Title =“主页”; }
<h2>@ViewBag.Message</h2>
<p>
@{
var grid = new WebGrid(@Model);
grid.GetHtml();
}
</p>
奇怪的是,WebGrid没有打印出任何内容。我期待两排。相反,我一无所获。我做错了什么?
答案 0 :(得分:1)
您忘记强烈键入视图并将GetHtml
方法的结果输出到视图输出流。你走了:
@model IEnumerable<Person>
<h2>@ViewBag.Message</h2>
@{
var grid = new WebGrid(Model);
}
<p>@grid.GetHtml()</p>
注意@grid.GetHtml()
如何从代码部分外部化,这基本上是将网格HTML写入输出流。在您的示例中,您在代码部分中调用grid.GetHtml()
,但您没有对结果执行任何操作,例如输出结果。这就是他们被遗忘的原因。
答案 1 :(得分:0)
试试这个也展示了如何在mvc3中使用webgrid和ajax http://www.helpnshareidea.in/2014/01/webgrid-in-mvc3-using-ajax.html