2011-11-18 114 views
2

Im手动使用内建的razor GETHtml函数创建表格。ASP.NET MVC3:Razor GetHTML表格自定义布局

@table.GetHtml(
    columns: table.Columns(
     table.Column("Account"), 
     table.Column("Due"), 
     table.Column("Topic"), 
     table.Column("Type"), 
     table.Column("Completed?", format: @<input id="Complete" name="Complete" type="checkbox" onclick="/Tasks/Complete?ID=700" />) 
     ) 
) 

我想要的是点击复选框或按钮来激活控制器的方法。它不接受动态复选框。 html复选框也不做任何事情。

回答

1

我有没有使用形成了有效的解决方案,该列将使用下面的代码来设置:

table.Column("Completed?", format: @<input type="checkbox" onclick="location.href='@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })'" /> 

我认为它可能具有name属性导致它将其作为参数发布,而不是将其视为提交。否则它一定是onclick事件。我使用了location.href,然后使用razor语法进行设置,并将id作为属性。

0

几种方法去执行一个职位到你想要的控制器。用你想要提交的表格来包装你的表格,或者添加一些AJAX处理程序来发布你想要的数据。一个简单的表单可以像来完成:

<% using (Html.BeginForm<SomeController>(x=> x.SomeAction()) 
{ 

@table.GetHtml(
    columns: table.Columns(
     table.Column("Account"), 
     table.Column("Due"), 
     table.Column("Topic"), 
     table.Column("Type"), 
     table.Column("Completed?", format: @<input id="Complete" name="Complete" type="submit" " />) 
     ) 
) 

} 
+0

最后,我在格式部分添加了一个新的全新窗体。这是我想要的。仍在寻找可能不必使用表单的在线解决方案。没有完全得到你的'(x => x.SomeAction())',也不知道ID的设置。 – Doomsknight