2011-05-20 11 views

Respuesta

17

¿no es sencilla sólo para escribir

<input type="submit" class="myclassname"/>

En MVC , no hay cosas como controles, que tengan mucha lógica de aplicación. De hecho, es posible pero no recomendado. Lo que quiero decir es que los helpers Html están haciendo que escribir en Html sea más cómodo y te ayudan a no escribir código duplicado. En su caso particular, creo que es más sencillo escribir html directo que con ayudante. Pero de todos modos, si lo desea, está contenido en MVC Futures Library. El método se llama SubmitButton

0

No hay ninguno, pero eso no debería impedirle construir uno usted mismo.

A pesar de que no aparece el proyecto de futuros MVC estar avanzando en absoluto o soportados, no es demasiado difícil de descargar el código fuente, y agarrar el ayudante botón Enviar (y se está apoyando código) para liar.

Es exactamente cómo creamos la base de nuestro ayudante SubmitButton para un gran proyecto MVC 4.

2

No hay ayuda HTML para un botón porque los helpers HTML reflejan las propiedades de un modelo y te ayudan estableciendo los atributos correctos para propósitos de enlace, también miran los metadatos VilidationAttribute para esa propiedad (si hay) y agregue cualquier atributo de validación jQuery.

Los botones no son parte del modelo, por lo que no tienen ningún ayudante.

Puede cajón de su propio asistente de HTML siguiendo este artículo http://www.asp.net/mvc/overview/older-versions-1/views/creating-custom-html-helpers-cs o el uso de la clase TagBuilder: http://www.asp.net/mvc/overview/older-versions-1/views/using-the-tagbuilder-class-to-build-html-helpers-cs pero yo preferiría volver HTMLString que una cadena

5

acaba de agregar a su clase de proyecto con dicho código:

using System.Text; 

namespace System.Web.Mvc 
{ 
public static class CustomHtmlHelper 
{ 
    public static MvcHtmlString SubmitButton(this HtmlHelper helper, string buttonText, object htmlAttributes = null) 
    { 
     StringBuilder html = new StringBuilder(); 
     html.AppendFormat("<input type = 'submit' value = '{0}' ", buttonText); 
     //{ class = btn btn-default, id = create-button } 
     var attributes = helper.AttributeEncode(htmlAttributes); 
     if (!string.IsNullOrEmpty(attributes)) 
     { 
      attributes = attributes.Trim('{', '}'); 
      var attrValuePairs = attributes.Split(','); 
      foreach (var attrValuePair in attrValuePairs) 
      { 
       var equalIndex = attrValuePair.IndexOf('='); 
       var attrValue = attrValuePair.Split('='); 
       html.AppendFormat("{0}='{1}' ", attrValuePair.Substring(0, equalIndex).Trim(), attrValuePair.Substring(equalIndex + 1).Trim()); 
      } 
     } 
     html.Append("/>"); 
     return new MvcHtmlString(html.ToString()); 
    } 
} 
} 

Y ejemplo de uso:

@Html.SubmitButton("Save", new { @class= "btn btn-default", id="create-button" }) 
+1

debe ser la respuesta aceptada – SlapY

0

Aquí es cómo lo hice.

Hablando de HTML 5 <button> atributo

Crear un PartialView - llamarlo como _HTML5Button.vbhtml

@ModelType YourProjectName.ButtonViewModel 

<button onclick="location.href = '@Model.URL'" class="btn btn-info">@Model.ButtonText</button> 

y crear un ButtonViewModel

Public Class ButtonViewModel 

Public URL As String 
Public ButtonText As String = "Modify Button Text" 
'You can add more parameters or do as you please 

End Class 

Entonces como sea necesario para crearla le llame parcial como esto

@Html.Partial("~/Views/Shared/MiniPartialViews/_HTML5Button.vbhtml", New ButtonViewModel With {.URL = "http://www.goanywhere.com", .ButtonText = "Name That Will Appear On The Button"}) 

De esta forma si desea agregar más parámetros después - es todo lo que uno en vista parcial centralizado para usted - Digamos que usted desea agregar un id adelante

bien que vaya a usted parcial, añadir un id = "@ Model.Id" es así, en su PartialView Llamada que acaba de añadir que el parámetro - no se rompe nada - si alguna vez tiene que agregar una clase a ese botón - agregarlo - en un lugar en lugar de buscar todas las llamadas.

Esperanza que ayuda - que funciona muy bien para mí!

Cuestiones relacionadas