您好我刚刚开始MVC编程,所以请原谅我的noob问题。
我有一个带有下拉列表的索引视图。根据下拉值,我使用jquery在Index的ContentDiv中添加了部分视图'_create'。
$('#CreateButton').click(function (e) {
$("#ContentDiv").load('/Controller/_Create?Id=' + $("#DropDownList1").val());
});
所以,现在我不知道如何在部分视图中提交按钮(_Create)
我的_create表单如下:
@using (Html.BeginForm("_Create","controller", FormMethod.Post,
new { id = "addFormData", name="addFormData" }))
{
----------
----------
<p>
<input type="submit" value="Create" />
</p>
}
控制器:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult _Create(WorkFieldModel entity, FormCollection p_form)
{
addFormValuetoDB();
return PartialView();
}
还有一件事;如何在回发后维护动态添加的局部视图的视图状态。
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
您可以使用AJAX请求提交表单,以避免对服务器执行完整回发并丢失上下文:
$('#CreateButton').click(function (e) {
var data = { id: $("#DropDownList1").val() };
$("#ContentDiv").load('/Controller/_Create', data, function() {
$('#addFormData').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
alert('Thanks for submitting the form');
}
});
return false;
});
});
});
由于您的HttpPost
控制器操作返回了PartialView,您可以在表单提交的success
回调中使用此信息,并将结果注入DOM中的某个位置。