net我对
的正确语法和要求有疑问<form action="">
是
我正在使用visual studio express for web 2013并遵循asp.net MVC框架
此分配的部分要求是:“方法签名必须具有制造商类型的参数。这是最佳实践。”
我正在查看示例网站的html表单,这是表单标记:
<form action="/Manufacturers/addmanufacturer" method="post">
表格在制造商文件夹的索引视图中,我还没有添加'addmanufacturer',因为我不确定它需要什么。那是控制器吗?它只是一个代码文件吗?我要为'addmanufacturer'实施什么项目?我注意到'addmanufacturer'没有任何“。”跟随它的是什么
另一个需要的部分是“方法返回值必须重定向到Index()方法。”是否可以进一步阐述这一部分?
答案 0 :(得分:1)
通常,在ASP.NET MVC中,您只需使用Html.BeginForm()辅助方法:
@using (Html.BeginForm()) {
// Form goodies go here
}
您可以从链接中看到,您可以选择指定操作,控制器,路由值和html属性。
编辑:要处理表单,您需要在控制器中创建一个操作(除非您另行指定,否则将在操作和同一控制器中创建相同的名称)。如果使用POST方法,可以使用[HttpPost]属性修饰action方法以帮助路由。
类似的东西:
[HttpPost]
public ActionResult Index(FormCollection formCollection)
{
}
您也可以创建一个自动填充的强类型,称为视图模型。
答案 1 :(得分:1)
AddManufacturer
控制器上Action
(通常)为Manufacturers
。只是如何在Index
控制器上定义Manufactures
操作。
现在我不确定引用的是什么:
方法返回值必须重定向到Index()方法。
实际上指的是,但我想象的是(因为我没有样本或书)。我假设一旦您填写表单并单击提交,它就是Posted
到制造商控制器上的AddManufacturer
操作。
现在一个动作通常应该导致ActionResult
(不一定但通常会这样做)所以我理解的是,当AddManufacturer
动作的处理逻辑完成时,它应该重定向回到制造商控制器上的Index
行动。这通常(同样不总是)称为RedirectToRouteResult
,在此示例中将调用,例如:
return RedirectToAction("Index");
该代码将指示浏览器重定向回Index
控制器上的Manufacturers
操作。
对于您的表单,(基于您的示例),另一个响应中列出的html帮助程序将发布到Index
控制器上的Manufacturers
操作。但是,您希望发布到需要使用的AddManufacturers
操作。
@using (Html.BeginForm("AddManufacturers", "Manufacturers"))
{
}
我希望这有助于澄清一些事情。