use*_*852 3 forms controller asp.net-mvc-4
好吧,经过长时间的调查,似乎当我有一个创建的视图与_layout.cshtml一起工作时 - 我所拥有的表格中的提交按钮不起作用(没有动作返回给控制器).
只有当我创建一个视图并取消选中"使用布局或母版页"时 - 该按钮才有效!
这看起来非常不清楚,所以 - 如何使用一般的_layout.cshtml和一个工作表单按钮同时查看?
下面:尝试在MVC4(+ Razor)中实现一个表单
控制器(应该获得后期操作):
public class GeneralController {
[HttpPost]
public ActionResult SearchResults(SearchParamsModel searchParams)
{
// doin some stuff here
return View("SearchResultsView");
}
}
Run Code Online (Sandbox Code Playgroud)
查看(.cshtml)
@model Models.SearchParamsModel
@using (Html.BeginForm("SearchResults", "General", FormMethod.Post))
{
<section class="form-field">
<input type="text" name="Property1" id="Property1" class="field field139 autocomplete-init-no-img" />
<label for="Property1">value1</label>
<form action="" method="post" class="clearfix">
<input
type="submit"
value="some value"
class="submit btn blue-btn special-submit" />
</form>
</section>
}
Run Code Online (Sandbox Code Playgroud)
模型
public class SearchParamsModel
{
public string Property1{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Lar*_*kås 13
你应该删除你的内部表格标签,
@using (Html.BeginForm("SearchResults", "General", FormMethod.Post))
Run Code Online (Sandbox Code Playgroud)
将为您生成表单标记.
此外,您应该使用html帮助器来生成表单元素:
@Html.LabelFor(model => model.Property1)
@Html.TextBoxFor(model => model.Property1)
Run Code Online (Sandbox Code Playgroud)
由于这个原因,可能是一个可能的模型绑定问题.提交按钮属于您的嵌套内部表单,此处没有提交的模型.
@model MvcApplication2.Models.SearchParamsModel
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("SearchResults", "General", FormMethod.Post))
<section class="form-field">
@Html.LabelFor(model => model.Property1)
@Html.TextBoxFor(model => model.Property1)
<input type="submit" value="some value" class="submit btn blue-btn special-submit" />
</section>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36351 次 |
| 最近记录: |