C# .net一页发行多张表单

C# .net一页发行多张表单,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我有一个多表单的视图 @using (Html.BeginForm("Withdrawal", "ATMControl", FormMethod.Post, new {})) { //code } @using (Html.BeginForm("Deposit", "ATMControl", FormMethod.Post, new {})) { //code } @using (Html.BeginForm("transfer", "ATMControl", FormMetho

我有一个多表单的视图

@using (Html.BeginForm("Withdrawal", "ATMControl", FormMethod.Post, new {})) 
{
 //code   
}

@using (Html.BeginForm("Deposit", "ATMControl", FormMethod.Post, new {})) 
{
//code
}

@using (Html.BeginForm("transfer", "ATMControl", FormMethod.Post, new {})) 
{
//code
}
在我的控制器中:

//this works
 public ActionResult Index()
        {
                SetViewBagAccounts();
                return View();
        }

//this doesnt

        [HttpPost]
        public ActionResult Withdrawal(ATMModel model)
        {
            //do your login code here
            return View();
        }
我想做的是在这个控制器中单独处理取款、存款和转账。 我一直在犯这个错误

找不到资源

描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确


请求的URL:/ATMControl/drawing

在页面中使用多个Html.BeginForm()不会有问题

您的代码看起来不错,所以如果您的控制器名为ATMControlController,则不应使用404

尝试在没有最后一个参数的情况下使用BeginForm重载,在这种情况下这是无用的

还要确保构建您的项目。这是一个微不足道的建议,但只保存视图(如ASP.NET WebForms)是一个常见的错误


请发布更多代码以获得进一步帮助。

在一个页面中使用多个Html.BeginForm()是没有问题的

您的代码看起来不错,所以如果您的控制器名为ATMControlController,则不应使用404

尝试在没有最后一个参数的情况下使用BeginForm重载,在这种情况下这是无用的

还要确保构建您的项目。这是一个微不足道的建议,但只保存视图(如ASP.NET WebForms)是一个常见的错误


请发布更多代码以获得进一步帮助。

当通过控制器名称引用控制器时,不应在名称中包含“控制器”部分。例如,如果您的控制器类被称为
ATMController
,那么您应该只使用
“ATM”
引用它,如下所示:

@using (Html.BeginForm("Withdrawal", "ATM", FormMethod.Post, new {})) 
{
}
这将转换为以下URL:
/ATM/取款


我现在找不到一个链接来向您提供更多关于为什么这样做的信息,但是您应该知道,在确定哪个类是合适的时,MVC框架将隐式地包含名称的“Controller”部分。

当通过名称引用控制器时,您不应该包含“Controller”名字的一部分。例如,如果您的控制器类被称为
ATMController
,那么您应该只使用
“ATM”
引用它,如下所示:

@using (Html.BeginForm("Withdrawal", "ATM", FormMethod.Post, new {})) 
{
}
这将转换为以下URL:
/ATM/取款


我现在找不到一个链接来向您提供更多关于为什么这样做的信息,但是您应该知道,MVC框架将隐式地包含“控制器”当确定哪个类是合适的时,名称的一部分。

如果您的控制器名称正好是ATMController,则使用
/ATM/drawing/
,这意味着

RouteName + Controller =RouteNameController

then 

/RouteName/ActionName

如果您的控制器名称正好是ATMController,请使用
/ATM/drawing/
,这意味着

RouteName + Controller =RouteNameController

then 

/RouteName/ActionName

您的控制器的名称是什么?ATMController。我把我的控制器扔错了,但我做了修复,仍然是相同的错误。你需要删除“控制器”部分,在提到控制器时使用“ATM”。MVC magic会解决的谢谢老兄这是我的问题别忘了接受对你有帮助的答案,它会提高你的声誉,增加你在未来获得更高质量答案的机会你的控制器叫什么?ATMController。我把我的控制器扔错了,但我做了修复,仍然是相同的错误。你需要删除“控制器”部分,在提到控制器时使用“ATM”。MVC魔术会解决的谢谢老兄这是我的问题别忘了接受对你有帮助的答案,它会提高你的声誉,增加你在未来获得更好质量答案的机会在我看来我想念我的控制器。我的控制器叫ATMController,但它仍然不工作,同样的错误在我看来我错过了我的控制器。我的控制器叫ATMController,但它仍然不工作,同样的错误