0
我正在尋找一種方法來定義全局函數,以便我可以在多個視圖之間共享實現。MVC中的全局函數5
我想知道我會把它們放在哪裏?我試過_viewStart.cshtml和/Share/_Layout.cshtml,但似乎不起作用。
我不想創建HtmlHelper
類的擴展。在我的情況下,擴展名不起作用。我討厭繼續在多個視圖中複製相同的功能。
@functions {
public static string GetColumnHeader(string columnName, string columnHeader, ISupportGridViewModel model)
{
return string.Format("{0} {1}", columnHeader, model.Sort == columnName ? model.SortDir == "ASC" ? "▲" : "▼" : string.Empty);
}
}
對於那些評論說我應該使用擴展。這裏是我無法實現它的例子。據我所知,Razor助手只不過是擴展方法而已,它不起作用。
這裏是工作
var grid = new WebGrid(this.Model.Data);
grid.Pager(WebGridPagerModes.Numeric);
@grid.GetHtml(tableStyle: "table grid",
columns: grid.Columns(
grid.Column(columnName: "Time", format: (item) => MethodDefinedInView(item.EndTime))
))
這裏是行不通的例子
爲什麼不能擴展工作?這看起來是一個很好的候選人的擴展。 – 2014-12-03 01:43:32
是什麼讓你覺得_extensions不會工作_? – 2014-12-03 01:43:50
我使用MVC webgrid,當你想傳遞一個擴展名(Func <動態,對象>格式)時,它失敗。它不喜歡這裏的擴展。 所以,我能夠通過調用一個函數來解決它的唯一方法。 – Sam 2014-12-03 01:46:21