Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加一个<;形式动作="&引用&燃气轮机;问题_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# 添加一个<;形式动作="&引用&燃气轮机;问题

C# 添加一个<;形式动作="&引用&燃气轮机;问题,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,net和我有一个问题,关于 <form action=""> 是 我正在使用visual studio express for web 2013并遵循asp.net MVC框架 本任务的部分要求是:“方法签名必须具有制造商类型的参数。这是最佳实践。” 我正在查看示例网站的html表单,这是表单标签: <form action="/Manufacturers/addmanufacturer" method="post"> 该表单位于Manufacturers文

net和我有一个问题,关于

<form action=""> 

我正在使用visual studio express for web 2013并遵循asp.net MVC框架

本任务的部分要求是:“方法签名必须具有制造商类型的参数。这是最佳实践。”

我正在查看示例网站的html表单,这是表单标签:

<form action="/Manufacturers/addmanufacturer" method="post">

该表单位于Manufacturers文件夹的索引视图中,我还没有添加“addmanufacturer”,因为我不确定它需要什么。那是控制器吗?它只是一个代码文件吗?我应该为“addmanufacturer”实施什么项目?我注意到“addmanufacturer”后面没有任何类型的“.”


需要的另一部分是“方法返回值必须重定向到Index()方法”。是否可以进一步详细说明该部分?

通常,在ASP.NET MVC中,您只需使用helper方法:

@using (Html.BeginForm()) {
  // Form goodies go here
}
您将从链接中看到,您可以选择指定操作、控制器、路由值和html属性

编辑:要处理表单,您需要在控制器中创建一个动作(动作的名称和同一控制器中的名称相同,除非您另有指定)。如果使用POST方法,则可以使用[HttpPost]属性装饰action方法,以帮助进行路由

比如:

[HttpPost]
public ActionResult Index(FormCollection formCollection)
{
}

您也可以创建自动填充的强类型,称为视图模型。

添加制造商通常是
制造商
控制器上的
操作
。如何在
控制器上定义
索引
操作

现在我不太清楚引用的是什么:

方法返回值必须重定向到Index()方法

实际上是指,但我想象的(因为我没有样本或书)。我假设,一旦您填写表单并单击提交,它将
发布到制造商控制器上的
AddManufacturer
操作中

现在,一个操作通常会导致一个
ActionResult
(不必,但通常会),因此我的理解是,当
AddManufacturer
操作的处理逻辑完成时,它应该重定向回制造商控制器上的
Index
操作。这通常(也不总是)称为
重定向路由结果
,在本例中称为:

return RedirectToAction("Index");
该代码将指示浏览器重定向回
制造商
控制器上的
索引
操作

对于您的表单,(根据您的示例),另一个响应中列出的html帮助程序将发布到
制造商
控制器上的
索引
操作。但是,您希望发布到需要使用的
AddManufacturers
操作

@using (Html.BeginForm("AddManufacturers", "Manufacturers"))
{

}

我希望这有助于澄清一些问题。

me:ooooooooohh。我完全忘了我的教授今天在课堂上谈论html助手。谢谢你提醒我!还有一个问题:它会被视为一个新项目吗?控制器?请注意,上面列出的post操作的url将是
/Manufacturers/
,而不是
/Manufacturers/AddManufacturer
(如OP问题中所述),我认为,如果在BeginFormWhich参数中显式指定控制器和操作方法,则url中的其他附加参数将在表单提交时丢失?查询参数?是的,他们会的,但是岗位将去正确的控制器。如果愿意,您可以提供额外的RouteValue。