положить текстовое поле и кнопку в приложении бритвы mvc - PullRequest
3 голосов
/ 25 января 2012

Я работаю над тестовым проектом mvc, и так как я впервые работаю в среде mvc, я почти потерян и совершенно другой по сравнению с веб-формами asp.net.Я пытаюсь поместить текстовое поле и кнопку в форму, но когда я использую <%= Html.TextBox("name") %> для текстового поля, например, код отображается в виде текста на экране и не отображается как текстовое поле.Когда я использую HTML-разметку для текстового поля и кнопки, я вижу текстовое поле, но не должен ли <%= Html.TextBox("name") %> быть правильным способом сделать это?Вот что у меня здесь:

@{  
    Layout = "~/_SiteLayout.cshtml";
    Page.Title = "Welcome to my Web Site!";
}
<p>
    ASP.NET Web Pages make it easy to build powerful .NET based applications for the web.    
    Enter your name:  <%= Html.TextBox("name") %>
    <input id="Text1" type="text" />
    <input id="Button1" type="button" value="button" />
</p>

Какой путь мне выбрать, можно ли перейти со стандартным форматом html или что я делаю неправильно, что текстовое поле из <%= Html.TextBox("name") %> не отображается?Заранее спасибо, Лазиале

Ответы [ 3 ]

4 голосов
/ 25 января 2012

Вы используете синтаксис ASPX. Для Razor это будет примерно так:

@Html.TextBox("TextBoxName")

Ваш код будет выглядеть так:

<p> 
    ASP.NET Web Pages make it easy to build powerful .NET based applications for the web.     
    Enter your name:  
    @Html.TextBox("name")
    <input id="Button1" type="button" value="button" /> 
</p> 
3 голосов
/ 25 января 2012

В дополнение к предыдущим ответам, если вы ссылаетесь на модель на странице просмотра, вы можете использовать помощники Razor HTML с лямбда-выражениями.

Обновленный пример (Это обновление является ответом на комментарий Laziale):

В вашем каталоге Models у вас есть класс пользователя:

namespace MvcApplication.Models
{
    public class User
    {
        public string Name { get; set; }
    }
}

В вашем каталоге контроллеров у вас есть UserController:

namespace MvcApplication.Controllers
{
    public class UserController : Controller
    {
        //
        // GET: /User/

        public ActionResult Index()
        {
            return View();
        }

    }
}

В вашем каталоге Views у вас есть подкаталог с именем «User», который содержит файл «Index.cshtml»:

@model MvcApplication.Models.User
@using (Html.BeginForm())
{
    @Html.TextBoxFor(x => x.Name)
    <input type="submit" />
}

MVC / Razor создаст следующий HTML-код:

    <html>
    <head>...</head>
    <body>
     <form action="/User" method="post">
      <input id="Name" name="Name" type="text" value="" />    
      <input type="submit" />
     </form>
    </body>
    </html>
0 голосов
/ 25 января 2012

Вы используете синтаксис Razor, который обозначается @ в начале:

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