正确的MvcContrib 3语法是什么?
本文关键字:语法 是什么 MvcContrib | 更新日期: 2023-09-27 18:14:00
我继承了一个ASP。. NET MVC 1网站使用MVCContrib 1.5,我试图升级到MVC 3和MVCContrib 3.
使用Html.Grid
.Columns(column=>{
column.For("Yes").Action(p =>{%>
<td>
<%=this.Hidden("category[" + i +"].Id").Value(p.Id)%>
<%=this.RadioButton("category[" + i + "].Interested").Value("true") %>
</td>
<%});
column.For("No").Action(p =>{%>
<td>
<%=this.RadioButton("category[" + i + "].Interested").Value("false") %>
</td>
<%});
})
在MvcContrib中,.For("Yes")
不再是用字符串作为标题创建列的有效语法。
要使其工作,我必须将其更改为.For(c=>"Yes")
,我必须添加.Named("Yes")
以获得标题文本。据我所知,c=>"Yes"
实际上并没有做任何有用的事情。应该去哪里?或者如果它不会造成任何伤害,我应该离开它?
此外,.Action
已弃用,它说使用.Custom
代替。我该如何转换上面的内容?
column.Custom(p => {%>
<td style="text-align:center">
<%=this.Hidden("category[" + i + "].Id").Value(p.Id)%>
<%=this.RadioButton("category[" + i + "].Interested").Value("true") %>
</td>
<% }).Named("Yes");
这期望一个返回值,我不确定该放什么,找不到很多例子。
column.Custom(
@<text>
<td style="text-align:center">
@this.Hidden("category[" + i + "].Id").Value(item.Id)
@this.RadioButton("category[" + i + "].Interested").Value("true")
</td>
</text>
).Named("Yes");
For()
方法用于当您只想显示属性的值时-因此您可以这样使用它:
column.For(p => p.Id).Named("Yes");
注意,如果你给Id属性一个模型上的[Display(Name="Yes")]
属性,你不必使用Named()
,因为这是默认使用的。
你可以使用Custom()
当你想要显示一些你精心制作的html,所以你可以只返回一个MvcHtmlString。使用razor语法,它可能看起来像:
column.Custom(p => @Html.Partial("IdPartial",p.Id));