【发布时间】:2017-07-26 17:20:16
【问题描述】:
我有一个带有按钮的视图(razor,mvc4),里面有两个局部视图。它们是强类型的。每个部分都包含一个按钮和一些输入字段。
<div>
@{Html.RenderPartial("_LinkCreator", Model.linkCreator);}
</div>
<br />
<div>
@{Html.RenderPartial("_LinkFinder", Model.linkFinderImage);}
</div>
主视图有一个模型
@model mvcPictureDownload.Models.PictureDownloadModel
在控制器内部我有一个动作结果
[HttpPost]
public ActionResult LinkDownload(PictureDownloadModel pictureDownload,
LinkCreatorModel linkCreator, LinkFinderModel linkFinderImage)
如果我在其中一个局部视图中单击按钮,控制器会从该局部视图中捕获值,但我会从另一个局部视图的输入字段中获取空值。如果我在主视图上单击按钮,则只有第一个局部视图中的值会传递给控制器。
我需要在我的控制器中同时获得两个部分视图的值。有没有办法做到这一点?
编辑: 部分视图如下所示
@model mvcPictureDownload.Models.LinkFinderModel
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>LinkFinderModel</legend>
<div class="container">
<div class="row" >
<div class="col-md-12">
<div class="editor-label">
@Html.LabelFor(model => model.file)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.file, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.file)
</div>
</div>
</div>
<div class="row" >
<div class="col-md-4">
<div class="editor-label">
@Html.LabelFor(model => model.tagSearchExpression)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.tagSearchExpression, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.tagSearchExpression)
</div>
</div>
<div class="col-md-4">
<div class="editor-label">
@Html.LabelFor(model => model.attributeSearchExpression)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.attributeSearchExpression, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.attributeSearchExpression)
</div>
</div>
<div class="col-md-4">
<div class="editor-label">
@Html.LabelFor(model => model.folderSearchExpression)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.folderSearchExpression, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.folderSearchExpression)
</div>
</div>
</div>
<div class="row" >
<div class="col-md-2">
<div class="editor-label">
@Html.LabelFor(model => model.linkType)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.linkType, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.linkType)
</div>
</div>
<div class="col-md-2">
<div class="editor-label">
@Html.LabelFor(model => model.requiredText)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.requiredText, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.requiredText)
</div>
</div>
<div class="col-md-2">
<div class="editor-label">
@Html.LabelFor(model => model.avoidText)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.avoidText, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.avoidText)
</div>
</div>
<div class="col-md-2">
<div class="editor-label">
@Html.LabelFor(model => model.ReplaceThis)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.ReplaceThis, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.ReplaceThis)
</div>
</div>
<div class="col-md-2">
<div class="editor-label">
@Html.LabelFor(model => model.ReplaceWith)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.ReplaceWith, new { @class = "input-full" })
@Html.ValidationMessageFor(model => model.ReplaceWith)
</div>
</div>
</div>
<br />
<p>
<input type="submit" value="Apply" name="FinderButton" />
</p>
</div>
</fieldset>}
主视图是这个
@model mvcPictureDownload.Models.PictureDownloadModel@{
ViewBag.Title = "LinkDownload";}
<h4>LinkDownload</h4>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>PictureDownloadModel</legend>
<p>
<input type="submit" value="Create" name="CreateButton" />
</p>
</fieldset>
<div>
@{Html.RenderPartial("_LinkCreator", Model.linkCreator);}
</div>
<br />
<div>
@{Html.RenderPartial("_LinkFinder", Model.linkFinderImage);}
</div>
<fieldset>
<div class="container">
<div class="row" >
<div class="col-md-12">
<div class="editor-label">
@Html.LabelFor(model => Model.FilePath)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => Model.FilePath, new { @class = "input-full" })
@Html.ValidationMessageFor(model => Model.FilePath)
</div>
</div>
</div>
<br /><br />
<div class="row" >
<div class="col-md-12">
<div style="height:200px;overflow:auto;">
@foreach (var createRes in Model.linkCreatorResult)
{
<li><b>@createRes</b></li>
}
</div>
</div>
</div>
</div>
@Html.HiddenFor(model => Model.linkCreatorResult)
</fieldset>}@section Scripts {
@Scripts.Render("~/bundles/jqueryval")}
【问题讨论】:
-
你能显示你的观点的标记吗?
-
我已经为视图添加了代码
标签: c# asp.net-mvc model