提交操作链接到表单 mvc4
本文关键字:表单 mvc4 链接 操作 提交 | 更新日期: 2023-09-27 18:35:38
我们有一个操作链接列表
部分视图
@foreach (var item in Model.Regions) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.RegionName)
</td>
<td>
<input type="submit" value="Select" />
</td>
@Html.HiddenFor(modelItem => Model.Id)
</tr>
}
</table>
我认为这不是正确的方法,但如果你能指出我正确的方向,将不胜感激。我想将此数据提交到现有表单中
区域视图
@using (Html.BeginForm()){
<fieldset>
@Html.Partial("_RegionsPartial");
<legend>Create new region</legend>
<ol>
<li>@Html.LabelFor(m => m.RegionName)</li>
<li>@Html.EditorFor(m => m.RegionName)</li>
</ol>
<input type="submit" value="Next" />
@Html.HiddenFor(model => model.RegionId)
</fieldset>
}
因此,您可以提交一个新的或提交现有的。我不确定如何将现有ID获取到我的模型中。这是控制器:
public ActionResult Region()
{
var model = new WizardModel();
var getRegions = _facade.FetchRegion();
model.Regions = getRegions;
return View(model);
}
[HttpPost]
public ActionResult Region(WizardModel model)
{
if (model.RegionName != null)
{
var newRegion = _facade.CreateRegion(model.RegionName);
model.RegionId = newRegion.Id;
}
else
{
model.RegionName = _facade.FetchRegion(model.RegionId).RegionName;
}
TempData["suburbModel"] = model;
return RedirectToAction("Suburb");
}
感谢您抽出宝贵时间
这是我传递模型实例的示例。我有一个包含许多课程的视图,因此我需要单击一个按钮并触发一个操作,从而携带所单击课程的所有数据(包括相关 ID)。所以最后我用隐藏字段携带我需要的实例:)
我的课程模式...
public class CourseModel
{
public int RecordId { get; set; }
public string StudentNameField { get; set; }
public string SubjectField { get; set; }
public string CatalogField { get; set; }
public string SectionField { get; set; }
public string InstrNameField { get; set; }
public string MtgStartField { get; set; }
public string MtgEndField { get; set; }
}
我的主要观点...在"视图"文件夹中称为"课程列表"
<div id="container">
<div class="selectLabel">Select a Course:</div><br />
@foreach (var item in Model)
{
@Html.DisplayFor(model=>item)
}
</div>
我的显示模板 - 它是共享''显示模板中名为"课程模型"的视图...对于您的显示模板,您可以为现有和新模板制作一个独特的模型。使用显示模板中的"现有"模型,它会生成多个表单,每个表单使用按钮 type=submit 来提交带有模型实例的表单。使用 CSS 对按钮进行建模,就像链接一样。如果您仍然需要使用 actionlink,请将 iD 作为参数之一携带。
@using LecExamRes.Helpers
@model LecExamRes.Models.SelectionModel.CourseModel
@using (Html.BeginForm("CourseList", "Home", null, FormMethod.Post))
{
<div class="mlink">
@Html.AntiForgeryToken()
@Html.EncryptedHiddenFor(model => model.RecordId)
@Html.EncryptedHiddenFor(model => model.CatalogField)
@Html.EncryptedHiddenFor(model => model.SectionField)
@Html.EncryptedHiddenFor(model => model.SubjectField)
@Html.EncryptedHiddenFor(model => model.InstrNameField)
@Html.EncryptedHiddenFor(model => model.MtgStartField)
@Html.EncryptedHiddenFor(model => model.MtgEndField)
<p>
<input type="submit" name="gbtn" class="groovybutton" value="@Model.SubjectField - @Model.CatalogField - @Model.SectionField : @Model.InstrNameField">
</p>
</div>
}
我的控制器,课程列表 [POST] 操作...
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult CourseList(SelectionModel.CourseModel model)
{
//....do something with my model
}