Asp.net mvc 2 使用ASP.Net MVC2创建我的第一个创建页面
我正在尝试生成我的第一个MVC应用程序。我有一个非常基本的表:Teams:ID,Name。我已经创建了MVC应用程序ok,表已列出。下面是创建视图。当它运行时,我得到消息:需要一个值。你能帮忙吗(对不起,这是很基本的) 查看create.aspx:Asp.net mvc 2 使用ASP.Net MVC2创建我的第一个创建页面,asp.net-mvc-2,Asp.net Mvc 2,我正在尝试生成我的第一个MVC应用程序。我有一个非常基本的表:Teams:ID,Name。我已经创建了MVC应用程序ok,表已列出。下面是创建视图。当它运行时,我得到消息:需要一个值。你能帮忙吗(对不起,这是很基本的) 查看create.aspx: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Getti
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<GettingStarted.Models.Team>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Create</h2>
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="Name">Name:</label>
<%= Html.TextBox("Name") %>
<%= Html.ValidationMessage("Name", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%=Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
创建视图是强类型,因此请提供视图模型实例:
public ActionResult Create()
{
return View(new Team());
}
或
提示:还要添加一个Create操作,该操作将Team作为参数来处理验证错误
public ActionResult Create(Team team)
{
return View(team);
}
也不需要将空值传递给create表单!你的问题可能在别的地方。你能试着用一下吗
<%= Html.TextBoxFor(model => model.Name) %>
<%= Html.ValidationMessageFor(model => model.Name) %>
model.Name)%%>
型号(名称)%%>
而不是
<%= Html.TextBox("Name") %>
<%= Html.ValidationMessage("Name", "*") %>
问题可能是模型中某个字段上的注释。您是否检查过您的模型是否存在以下情况:
public class Team {
[Required(ErrorMessage = "A value is required")]
public string whatEver {get; set;}
...
}
好的开始,但我们需要你提供更多的信息。你是在Get还是Post中发现了错误?例外发生在哪一行?@n主持人:实际上,索莫里说得很好。根据您提供的信息,我们无法确定这是否发生在创建过程的GET或POST中?它是在您第一次想要显示此视图时发生的,还是在您填写文本框并将其提交回服务器后发生的?谢谢您的回复。传递模型实例是有意义的。但是它仍然抱怨“创建不成功-需要一个值”,建议我使用post(ms视频)[AcceptVerbs(HttpVerbs.post)]公共操作结果创建(团队){if(ModelState.IsValid){try{var db=new db();db.Teams.InsertOnSubmit(team);db.SubmitChanges();return RedirectToAction(“Index”);}catch{return View(team);}}}return View(team);}@nprosser:您是否也可以将问题中的代码更改为用于获取提到的异常并附加该特定错误的堆栈跟踪的代码,以便我们可以实际看到发生了什么。这已经是控制器的一部分:public ActionResult Create(Team Team){if(ModelState.IsValid){try{var db=new db();db.Teams.InsertOnSubmit(team);db.SubmitChanges();return RedirectToAction(“Index”);}catch{return View(team);}}返回视图(团队);}更新了我的答案,尝试以下操作:)当我替换为'model.Name)%>model.Name)%>'时,我得到消息CS1061:'System.Web.Mvc.HtmlHelper'不包含'TextboxFor'的定义,并且找不到扩展方法'TextboxFor'接受类型为'System.Web.Mvc.HtmlHelper'的第一个参数(是否缺少using指令或程序集引用?)@nprosser:如果是这样的话,你必须使用MVC 1,而不是你在标签中指出的MVC 2。我安装了MVC2,这就是我的初衷。将进行调查-您知道一种快速检查版本的方法吗?
<%= Html.TextBox("Name") %>
<%= Html.ValidationMessage("Name", "*") %>
public class Team {
[Required(ErrorMessage = "A value is required")]
public string whatEver {get; set;}
...
}