请允许我在前言中说我确实在研究处理此问题的其他SO问题,但它们要么是ASP解决方案,要么不完全是我需要的。
我的问题如下,如果我使用Html.BeginForm
,我可以向我的控制器中的方法发出Http Post请求,该方法返回部分视图吗?我知道并且多次使用过BeginForm的POST方法,然而,那些是ActionResult方法,它们负责将存储的数据传输到服务器中。我想做的事情如下:
说我有这个cshtml:
<div class="test">
@using (Html.BeginForm("MyPartialViewMethod"), FormMethod.POST) {
@Html.LabelFor(x => x.StartTimeLabel, Model.StartTime);
@Html.TextBoxFor(x => x.StartTime);
<input type="button" value="Submit"/>
}
</div>
这样在我的控制器中我可以说有以下示例方法。
[HttpPost]
public PartialViewResult MyPartialViewMethod(Model DynamicDataModel) {
//Pass the data in the DynamicDataModel into a new cshtml page and
//have the partial view it returns be rendered on screen
}
简而言之:
我想我可以采用我以前在大学里用PHP做的方法,即AJAX通过JS调用php,php吐出html,JS在需要的地方添加html。但是,这似乎有点过于粗糙。
答案 0 :(得分:0)
或者如果没有ajax则提取控制器部分并提交
$.ajax({
url: '@Url.Action("actionName", "controllerName")',
data: $('#MyPartialViewMethod').serialize(),
dataType: "json",
type: 'POST',
success: function (data) {
$('html').html(data);
},
error: function (request, error) {
}
});
[HttpPost]
public actionName(Model myModel)
{
do thing with your model
return PartialView(myModel);
}
循环