我引用了this topic,但它并没有解决我的问题。
我使用mvc 5和c#。我通常使用此代码从服务器接收数据类型为json
的数据。
$.ajax({
url: "/MyController/MyAction",
type: "POST",
dataType: "json",
success: function (data) {
if (data.result) {
alert('successfull');
}
else {
alert(data.ex);
}
}
});
和控制器代码:
[httppost]
public ActionResult MyAction()
{
try
{
return Json(new { result = "true", ex = "" });
}
catch (Exception e)
{
return Json(new { result = "false", ex = e.Message });
}
}
我用这种方式表示数据类型是html:
$.ajax({
url: "/MyController/MyAction",
type: "POST",
dataType: "html",
success: function (data) {
$(".myDiv").append(data);
}
});
和控制器应该是:
[httppost]
public ActionResult MyAction()
{
return PartialView("_MyPartialView");
}
我的问题是:有没有办法将所有这些组合成一个?
有点像这样:
$.ajax({
url: "/MyController/MyAction",
type: "POST",
dataType: "json" or "html",
success: function (data) {
if (data.result) {
$(".myDiv").append(data);
}
else {
alert(data.ex);
}
}
});
和想象力控制器代码:
[httppost]
public ActionResult MyAction()
{
try
{
return PartialView("_MyPartialView");
}
catch (Exception e)
{
return Json(new { result = "false", ex = e.Message });
}
}
答案 0 :(得分:0)
是的,你可以:
@section scripts
{
<script>
$(function() {
$.ajax({
url: "/Home/MyAction",
type: "POST",
success: function (data) {
if (!data.result) {
$(".myDiv").append(data);
}
else {
alert(data.ex);
}
}
});
});
</script>
}
因此,如果data
不包含匿名对象,则表示它包含PartialView
返回的HTML。