2010-12-08 10 views
0

La section _ViewStart.cshtml ne fonctionne pas du tout. Ci-dessous la sortieLe modèle de rasoir ne fonctionne pas. Quelque chose ne va pas dans _ViewStart.cshtml

<input type="text" value="{ class = big-field, tabindex = 1 }" name="Chris" id="Chris"> 

//Edit.aspx

@model myproject.Web.Models.ViewModel.User.EditViewModel 

@{ 
    View.Title = "Edit Profile"; 
    Func<myproject.Web.Models.ViewModel.User.EditViewModel, HelperResult> lst = ViewContext.Controller.ViewData["CreateEditViewModelTemplate"] as Func<myproject.Web.Models.ViewModel.User.EditViewModel, HelperResult>;  
} 

@Html.ValidationSummary(true, "Please correct the errors and try again.") 
@using (Html.BeginForm()) { 

    @Html.HiddenFor(model => model.UserId) 
    @lst(Model) 


    <fieldset> 
     <input type="submit" class="right-button" value="Back to Profile List" style="margin: 5px 0 5px 0" , tabindex="7"/> 
     <input type="submit" class="right-button" value="Update Profile" name="confirmButton" , tabindex="6"/> 
    </fieldset> 
} 




using System.IO; 
using System.Web; 
using System.Web.Mvc; 

namespace myproject.Web.Core.Helpers 
{ 
    public abstract class ViewStartPageWithHelpers : ViewStartPage 
    { 
     public static void WriteLiteralTo(TextWriter writer, object content) 
     { 
      writer.Write(content); 
     } 
     public static void WriteTo(TextWriter writer, object content) 
     { 
      writer.Write(HttpUtility.HtmlEncode(content)); 
     } 
    } 

} 

* //_ViewStart.cshtml*

@using myproject.Web.Models.ViewModel.User; 
@using myproject.Web.Core.Helpers; 

@{ 
    Layout = "~/Areas/Admin/Views/Shared/_Layout.cshtml"; 
} 

@inherits ViewStartPageWithHelpers 
@{ 
    Func<CreateViewModel, HelperResult> h = 
    @<fieldset> 
     <legend>Contact Information</legend> 
     <div> 
      @{<table class="form-spacing">      
       <tr> 
        <td class="cell-one">* @Html.Label(item.FirstName) :</td> 
        <td class="cell-two">@Html.TextBox(item.FirstName, new { @class = "big-field", tabindex = "1" })</td> 
        <td class="cell-three" >@Html.ValidationMessage(item.FirstName)</td>    
       </tr> 
      </table>}; 
     </div> 
    </fieldset>; 

    ViewContext.Controller.ViewData["CreateEditViewModelTemplate"]=h; 
} 
+0

Quel problème voyez-vous spécifiquement? Une exception (quelle est la pile)? Les choses ne sont tout simplement pas en cours d'exécution? – marcind

+0

Voir la sortie c'est ce que j'obtiens au lieu de tout le morceau html signifiant FieldSet entier. Aidez s'il vous plaît – Pirzada

+0

Je suis confus ... vous dites que le _viewstart ne fonctionne pas, mais dans votre sortie vous avez clairement sortie de l'assistant _viewstart ... Je pense que nous avons besoin d'un peu plus d'explications sur le résultat souhaité et le problème exact voyons avec _viewstart. –

Répondre

1

Si vous êtes se référant à la wierd val Vous avez dans votre élément d'entrée c'est parce que vous utilisez la mauvaise surcharge Html.TextBox accident. Essayez

Html.TextBox(item.FirstName, item.FirstName, new {@class = "big-field", tabindex = "1" })

Ou utiliser FORTES types dans la surcharge que vous choisissez.

+0

Oui, vous avez raison. C'est le problème. Mais Html.Label et Html.ValidationMessage ne fonctionnent pas. Pouvez-vous résoudre ce problème? – Pirzada

+0

Vous devriez être en mesure d'utiliser Html.LabelFor (x => x.FirstName) qui va automatiquement wireup une étiquette pour votre zone de texte. Vous ne devriez avoir besoin que d'un Html.ValidationMessage() en haut de votre page et les erreurs de validation doivent être renvoyées par votre contrôleur (ou vous modélisez si vous utilisez DataAnnotations). –

Questions connexes