我是asp.net mvc的新手。我正在使用Asp.net mvc2创建一个简单的应用程序。我创建了一个控制器,它将获取用户输入并显示它。当我运行我的应用程序时它向我显示此错误我的代码如下。
Server Error in '/' Application.
The resource cannot be found.
控制器:
[HttpPost]
public ActionResult DisplayCustomer(Customer obj)
{
return View("DisplayCustomer",obj);
}
查看:
<% using (Html.BeginForm("DisplayCustomer","test1",FormMethod.Post))
{ %>
Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />
Enter customer code :- <%= Html.TextBox("CustomerCode",Model) %><br />
Enter customer Amount :- <%= Html.TextBox("Amount",Model) %><br />
<input type="submit" value="Submit customer data" />
<%} %>
模型:
public class Customer
{
private string _Code;
private string _Name;
private double _Amount;
public string Code
{
set
{
_Code = value;
}
get
{
return _Code;
}
}
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
public double Amount
{
set
{
_Amount = value;
}
get
{
return _Amount;
}
}
}
我正在运行我的应用程序/test1/DisplayCustomer
。我浏览网页来解决它,但我没有得到任何解决方案。请让我知道我哪里出错了。
答案 0 :(得分:1)
删除[HttpPost]
public ActionResult DisplayCustomer()
{
return View();
}
对于发布目的,还包括一个操作方法:
[HttpPost]
public ActionResult DisplayCustomer(Customer obj)
{
//Code for processing post data
return View("DisplayCustomer",obj);
}
答案 1 :(得分:0)
我感觉有点混乱。
以这种方式思考:
在您的控制器中,在这种情况下,您必须至少有两个动作,
One(GET方法) - 应该是获取客户端请求PAGE的操作,并返回正确的html(View)。这个动作应该用[HttpGet]和它的默认名称(现在使用它)装饰它的索引:
[HttpGet]
public ActionResult Index()
{
return View();
}
创建此内容后,请确保创建与该名称匹配的正确View文件,在本例中为适当Views文件夹中的Index.cshtml(如果您使用的是Visual Studio,则可以直接单击该文件中的操作控制器,然后是“添加视图”选项,它将为您完成。
您应该关注的第二个操作是从页面中的表单获取请求的操作。这个与你已经写过的很相似。
对于你的问题 - 首先在控制器中创建Index操作,创建正确的View文件,构建和运行 - 应该呈现Index.cshtml。
我建议你阅读一些关于HTTP GET / POST方法和用法的一般资料,以及一些关于一般MVC概念的材料(MVC是一种方法,一种工作方式 - 它不仅仅是ASP.NET,它是编程世界的一般事情。)
希望有所帮助。
答案 2 :(得分:0)
在控制器中试试这个:
public ActionResult DisplayCustomer()
{
return View();
}
[HttpPost]
public ActionResult DisplayCustomer(Customer obj)
{
return RedirecttoAction("DisplayCustomer",obj);
}
在行动中尝试此操作:
<% using (Html.BeginForm("DisplayCustomer",FormMethod.Post))
{ %>
Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />
Enter customer code :- <%= Html.TextBox("CustomerCode",Model) %><br />``
Enter customer Amount :- <%= Html.TextBox("Amount",Model) %><br />
<input type="submit" value="Submit customer data" />
<%} %>
答案 3 :(得分:0)
以上根本不起作用。无论我做什么,Html.TextBox(“Id”,Model)下都有一个红色的波浪形。我必须删除模型以使其工作,我不需要第一个动作或[HttpPost],它的效果很好。