所以我有这个局部观点:
NSTextField
当有人点击链接时,我想在主视图中加载此部分视图:
@model QueryQuestionManager.Models.Domain.Answer
<script src="~/Scripts/DynamicList.js"></script>
<div class="editorRow">
@using (Html.BeginCollectionItem("Answers"))
{
<div>
@Html.LabelFor(x => x.AnswerText)
@Html.EditorFor(x => x.AnswerText)
</div>
<a href="#" class="deleteRow">delete</a>
}
</div>
这是控制器的动作结果
@model QueryQuestionManager.Models.Domain.Question
@{
ViewBag.Title = "Create";
}
<script src="~/Scripts/DynamicList.js"></script>
<br />
@using (Html.BeginForm(new { @class = "form", role = "form" }))
{
<div class="form-group">
<div class="editor-label">
@Html.LabelFor(m => m.QuestionText)
</div>
<div class="form-control">
@Html.TextBoxFor(m => m.QuestionText)
@Html.ValidationMessageFor(m => m.QuestionText)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.Category)
</div>
<div class="form-control">
@Html.TextBoxFor(m => m.Category)
@Html.ValidationMessageFor(m => m.Category)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.Answers)
</div>
<br />
<div id="editorRows">
@foreach (var item in Model.Answers)
{
@Html.Partial("EditorRow", item);
}
</div>
@Html.ActionLink("Add another...", "BlankEditorRow", "Question", new { id = "addItem" })
<br />
<input type="submit" value="Save" class="btn btn-success" />
</div>
}
<br />
<div>
@Html.ActionLink("Back to List", "Index", "Home")
</div>
然后我有一个javascript文件,用于动态添加和删除部分视图。
public ActionResult BlankEditorRow()
{
return PartialView("EditorRow", new Answer());
}
但由于某种原因,我的局部视图不会加载到当前视图中,而只会打开局部视图。
我忘记了什么吗?
答案 0 :(得分:0)
我以为你不想要那个动作链接。我相信您的jQuery点击处理程序具有正确的方法,但您的操作链接链接到您的新URL(问题/ BlankEditorRow)并且您不希望这样。相反,你只需要获取这个html,并像你一样插入它,但不要将主页面导航到该URL。
答案 1 :(得分:0)
使用锚标记和隐藏字段代替ActionLink。
<a id="addItem" href="#" />
<input type="hidden" id="partialViewAction" value="@Url.Action("BlankEditorRow","ControllerName")"
现在在你的ajax调用中,使用隐藏字段的值,而不是使用锚点的href属性。
url: $('#partialViewAction').val()