C# HttpPost到MVC部分视图?
请允许我在前言中说,我确实研究了与此相关的其他SO问题,但它们要么是ASP解决方案,要么不是我所需要的 我的问题如下:如果我使用C# HttpPost到MVC部分视图?,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,请允许我在前言中说,我确实研究了与此相关的其他SO问题,但它们要么是ASP解决方案,要么不是我所需要的 我的问题如下:如果我使用Html.BeginForm,我是否可以向控制器中返回部分视图的方法发出Http Post请求?我知道,也曾多次使用过使用BeginForm的POST方法,但这些方法都是ActionResult方法,负责将存储的数据传输到服务器。我想做的事情如下: 假设我有这个cshtml: <div class="test"> @using (Html.BeginForm
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>
简言之:
$.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);
}
循环是的,你可以。
您也可以在ajax中使用自定义的submit buton来完成此操作,但他将您的ajax称为jquery,
使用类似的东西并序列化您的模型
或者,如果没有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);
}
循环如果您想用
MyPartialViewMethod
返回的部分视图更新现有DOM,那么您需要使用ajax(不确定为什么您认为这看起来有点太粗糙?),通常,使用表单post意味着您将点击该操作,然后被重定向。但是,有可能劫持submit方法并使用您自己的ajax帖子而不是表单submit。然后你可以像其他ajax帖子一样做任何你想做的事情。@StephenMuecke我不认为这很粗糙,但是,我从来没有这样做过;我的部分视图总是getter,我需要的任何动态字段都是使用JavaScript即时生成的。这将涉及它返回整个html负载。您只需要$('form').submit(函数(e){e.preventDefault();var data=$(This.serialize();$(someElement).load('@Url.Action(“MyPartialViewMethod”),data);})
PartialViewResult
是ActionResult
:)如果您想用MyPartialViewMethod
返回的部分视图更新现有DOM,那么您通常需要使用ajax(不确定为什么您认为这看起来有点太粗糙?),使用表单帖子意味着您将点击操作,然后被重定向。但是,有可能劫持submit方法并使用您自己的ajax帖子而不是表单submit。然后你可以像其他ajax帖子一样做任何你想做的事情。@StephenMuecke我不认为这很粗糙,但是,我从来没有这样做过;我的部分视图总是getter,我需要的任何动态字段都是使用JavaScript即时生成的。这将涉及它返回整个html负载。您只需要$('form').submit(函数(e){e.preventDefault();var data=$(This.serialize();$(someElement).load('@Url.Action(“MyPartialViewMethod”),data);})代码>PartialViewResult
是ActionResult
:)