Шаблон бритвы не работает. Что-то не так в _ViewStart.cshtml - PullRequest
0 голосов
/ 08 декабря 2010

_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;
}

1 Ответ

1 голос
/ 10 декабря 2010

Если вы ссылаетесь на странное значение, которое есть в вашем элементе input, то это потому, что вы случайно использовали неправильную перегрузку Html.TextBoxПопробуйте

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

Или используйте сильные типы в выбранной вами перегрузке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...