Попробуйте это:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YourNamespace.YourModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm("AddEvent", "YourControllerName", FormMethod.Post, new { id = "create_event" }))
{ %>
<h2>Create</h2>
<p>Event ID: <%= Html.TextBox("txtEventID", Model.txtEventID)%> </p>
<p>Event Description: <%= Html.TextBox("txtEventDescription", Model.txtEventDescription)%> </p>
<button id="submit">Add Event</button>
<% } %>
</asp:Content>
Вам нужно будет создать модель со свойствами 'txtEventID' и 'txtEventDescription' ... это модель, пространство имен которой вы добавите в атрибут Inherits в первой строке (между угловыми скобками).
Ошибка, которую вы совершаете, заключается в использовании классических элементов управления ASP. MVC имеет дело с чистым HTML и использует HTML-помощники для его генерации. HTML.Textbook()
такой помощник.
... по сути, нет необходимости использовать помощники и модель ... вы можете использовать прямой HTML, например, так:
<p>Event ID: <input type="text" id="txtEventID" name="txtEventID" /> </p>
<p>Event Description: <input type="text" id="txtEventDescription" name="txtEventDescription" /> </p>
Мой совет: ознакомьтесь с руководствами здесь: http: //www.asp.net/mvc/tutorials.
Наконец, если вы используете модельный подход, вы можете переписать действия вашего контроллера следующим образом:
public ActionResult Create(YourModel Model)
{
Model.txtEventID ...
}
ASP.NET MVC использует «привязку модели» для привязки значений формы к вашей модели, чтобы вам не требовался доступ к FormCollection.
Многое нужно усвоить здесь, но я снова советую пройтись по учебникам, чтобы освоить основы. Вы не пожалеете об этом.