我需要保持学生对编辑模式的兴趣 有部分观点在哪里 两个列表框 - 一个用于当前兴趣,另一个用于可用(未在学生档案中添加) 每个兴趣都有一个ajax Action链接。当我点击它时,它会增加学生目前的兴趣。 问题是 - 我需要发送来自父视图的学生ID(即不是从部分视图), 并且学生ID在网址中 或 - 如何在部分视图中访问学生ID
//代码示例
@model StdMan.Models.Student
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="../../../../Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Project</legend>
<div class="editor-label">
@Html.LabelFor(model => model.StId)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.StId)
@Html.ValidationMessageFor(model => model.StId)
</div>
<div class="editor-label">
Intested In
</div>
<div class="editor-field" id="Interest">
@Html.Action("PartialAddInterest", "Interest")
</div>
</fieldset>
<p>
<input type="submit" value="Save" />
</p>
}
////////// - PartialView PartialAddInterest.cshtml
@model IEnumerable<StdMan.Models.Interest>
<table>
@foreach (var item in ViewBag.Added)
{
<tr>
<td>@item.Name
@Ajax.ActionLink("Remove", "RemoveInterest",new { id = item.IsId },
new AjaxOptions
{
UpdateTargetId = "Interest",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
})
</td>
</tr>
}
</table>
<table>
@foreach (var item in ViewBag.Rem)
{
<tr>
<td>@item.Name
@Ajax.ActionLink("Add", "AddInterest", new { id = item.IsId },
new AjaxOptions
{
UpdateTargetId = "Interest",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
})
</td>
</tr>
}
</table>
我必须使用Ajax Actionlink传递model.StId 比如@ Ajax.ActionLink(&#34; Add&#34;,&#34; AddInterest&#34;,new {id = item.IsId,StId = @ Model.StId},
在控制器中
public ActionResult AddInterest( int id, int StId)
{
//logic to add interest in specific student profile depend on StId
}
答案 0 :(得分:0)
您可以将学生ID传递给PartialAddTool
子操作:
@Html.Action("PartialAddTool", "Interest", new { id = Model.StId })
现在控制器操作将具有学生ID:
public ActionResult PartialAddTool(int stdId)
{
...
}
现在剩下的就是PartialAddTool
动作在视图模型上设置了一些传递给局部视图的属性。目前,这个局部视图似乎是IEnumerable<StdMan.Models.Interest>
的强类型,但你可以创建一个新的视图模型,它有2个属性:学生ID和一组兴趣。这样,部分视图将具有学生ID,并且在生成最终传递给AddInterest
操作的链接时可以使用它。