mvc应用程序无法正常工作

时间:2013-03-20 06:43:30

标签: asp.net-mvc asp.net-mvc-2

我是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。我浏览网页来解决它,但我没有得到任何解决方案。请让我知道我哪里出错了。

4 个答案:

答案 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],它的效果很好。