我在_SiteLayout.cshtml
文件的开头有几个Razor函数,我认为可以通过页面使用它来进行布局。然而,它似乎没有那样工作......其他页面是否有任何方法可以利用它们?
编辑:
这是其中一个功能的示例。如果我像你提到的那样定义函数,我可以使用它的名字来调用吗?防爆。 SaveQuestion(3, someVariableHere)
public void SaveQuestion(int QID, string A)
{
if (A != "")
{
var db = Database.Open("DB2");
var save = "INSERT INTO QuestionnaireData (QuestionID, ID, Answer) VALUES (@0, @1, @2)";
db.Execute(save, QID, WebSecurity.CurrentUserId, A);
}
}
类似的东西:
public static class GlobalFunctions
{
public void SaveQuestion(int QID, string A)
{
if (A != "")
{
var db = Database.Open("DB2");
var save = "INSERT INTO QuestionnaireData (QuestionID, ID, Answer) VALUES (@0, @1, @2)";
db.Execute(save, QID, WebSecurity.CurrentUserId, A);
}
}
}
然后像GlobalFunctions.SaveQuestion(3, someVariableHere)
这样称呼它?
答案 0 :(得分:0)
尝试将它们放在自己的静态类中,作为HtmlHelper
类的扩展方法实现。像这样:
public static class LabelExtensions
{
public static string Label(this HtmlHelper helper, string target,
string text)
{
return String.Format("<label for='{0}'>{1}</label>", target, text);
}
}
然后在你的Razor页面中,你可以这样使用它:
@Html.Label("firstName", "First Name:")
该示例来自this link at MSDN。
<强>更新强>
您不应该在Razor页面中放置SaveQuestion()方法。该功能应该在控制器类中。 Razor页面仅生成将发送到浏览器的HTML。一旦浏览器单击一个按钮,就会发生另一个请求,并且在该请求期间,控制器应该适当地调用SaveQuestion()方法。此时,您可以将该代码放在任何位置,并将其包含在using
语句中,该语句引用您放入的任何名称空间。