tag sintaxis net mvc asp asp.net-mvc asp.net-mvc-3 razor

asp.net mvc - sintaxis - ¿Cómo crear una función en una plantilla cshtml?



tag helper asp net core 2 (5)

Necesito crear una función que solo sea necesaria dentro de un archivo cshtml. Puede pensar en mi situación como métodos de página ASP.NET, que son servicios web mínimos implementados en una página, ya que tienen el alcance de una página. Sé de ayudantes HTML (métodos de extensión), pero mi función solo es necesaria en un archivo cshtml. No sé cómo crear una firma de función dentro de una vista. Nota : Estoy usando el motor de plantillas Razor.


¿Por qué no declarar esa función dentro del archivo cshtml?

@functions{ public string GetSomeString(){ return string.Empty; } } <h2>index</h2> @GetSomeString()



Puedes usar la directiva @helper Razor:

@helper WelcomeMessage(string username) { <p>Welcome, @username.</p> }

Entonces lo invocas así:

@WelcomeMessage("John Smith")


Si su método no tiene que devolver html y tiene que hacer otra cosa, entonces puede usar un método lambda en lugar de un método auxiliar en Razor

@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; Func<int,int,int> Sum = (a, b) => a + b; } <h2>Index</h2> @Sum(3,4)


Utilizar

@functions{ private string GetUrl(string destination) {}

Entonces puedes llamar a la función como-