【发布时间】:2017-07-01 21:07:55
【问题描述】:
大家好,我正在尝试为行是部分视图的行创建一个带有“添加”和“删除”按钮的视图。这是我目前所拥有的。
主视图
<fieldset>
<legend>Add Associated Assessments</legend>
<div id="divPartial"></div>
<input type="button" id="addassessment" name="addassessment" value="Add Assessment" />
<br />
@section Scripts
{
<script type="text/javascript">
$('#addassessment').on('click', function () {
$.ajax({
async: false,
url: '/PositionAssessments/AddNewAssessment'
}).success(function (partialView) {
$('#divPartial').append(partialView);
});
});
$("#deleteRow").on("click", function () {
$(this).parents("#assessmentRow:first").remove();
return false;
});
</script>
}
</fieldset>
局部视图
@model MyApp.Models.AssessmentAddView
@{
Layout = null;
}
@using (Html.BeginCollectionItem("Assessments"))
{
<div id="assessmentRow" class="assessmentRow">
@Html.DropDownListFor(m => m.SelectedId, Model.Data, "Select Assessment", new { @class = "form-control", @style = "display: inline" })
<input type="button" id="deleteRow" name="deleteRow" value="Delete Row" />
</div>
}
AssessmentAddView 类
public class AssessmentAddView
{
public IEnumerable<SelectListItem> Data { get; set; }
public string SelectedId { get; set; }
}
控制器
public ActionResult AddNewAssessment()
{
return PartialView("_Assessment");//return your partial view here
}
public ActionResult _Assessment()
{
var model = new AssessmentAddView
{
Data = ViewBag.AssessmentList = new SelectList(db.tblAssessment.OrderBy(a => a.AssessmentName), "Id", "AssessmentName")
};
return View(model);
}
好的,当我点击添加评估时,我得到一个内部错误 (500),但如果我取出下拉菜单并放入一些基本文本,它就可以工作。
如果我将其保留为基本文本并且添加有效,则删除按钮将无法正常工作。
如果我转到部分视图本身,它会通过下拉列表和所有评估加载正常。
关于我做错了什么有什么想法吗?
【问题讨论】:
-
我看不到 onclick="deleteFunction()" 的删除功能。这是一个可能的错误?
-
感谢您发现这一点。我已经更新了代码以反映删除。删除按钮现在什么都不做,没有错误。
标签: c# jquery asp.net-mvc partial-views