ajax调用mvc控制器
为什么此代码不起作用?。我收到“确定”,但看不到视图1(未加载视图1)。我希望通过prop1管理视图。如果prop1=“1”的值为“加载视图1” 希尔是我的控制器ajax调用mvc控制器,ajax,asp.net-mvc,Ajax,Asp.net Mvc,为什么此代码不起作用?。我收到“确定”,但看不到视图1(未加载视图1)。我希望通过prop1管理视图。如果prop1=“1”的值为“加载视图1” 希尔是我的控制器 [System.Web.Mvc.Route("Home/SubmitMyData/")] [System.Web.Http.HttpPost] public ActionResult SubmitMyData([FromBody]MyParamModel mydata) {
[System.Web.Mvc.Route("Home/SubmitMyData/")]
[System.Web.Http.HttpPost]
public ActionResult SubmitMyData([FromBody]MyParamModel mydata)
{
if (mydata.Prop1.Equals("1"))
return View("veiw1");
else
return View("view2");
}
public class MyParamModel // #4
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
这是我的ajax调用
$('#Buttonv').click(function () {
var myData = {Prop1: "1", Prop2: ""}; // #1
$.ajax({
type: 'POST',
data: myData, // #2
url: '/Home/SubmitMyData',
})
.success(function (data) {
var output = "ok";
$('#lblmessage').html(output);
})
.error(function (xhr, ajaxoption, thrownError) {
$('#lblmessage').html("moshkelo" + xhr + "ajaxoption= " + ajaxoption + " throwerror=" + thrownError);
});
//return false;
});
在javascript中,忽略服务器返回的HTML。试着把它改成
.success(function (data) {
$('#lblmessage').html(data);
})
根据,
success
方法的第一个参数是服务器返回的数据。如果您从控制器返回视图,则需要确保您在帖子的success
回调中实际使用HTML内容:
.success(function (data) {
// data will contain your content
$('#lblmessage').html(data);
})
您以前使用的是输出
,它似乎没有在脚本中的任何地方定义
此外,您可能需要检查作为
返回视图(“veiw1”)返回的视图的名称
看起来像是一个输入错误,应该是返回视图(“View1”)代码>1:数据不重要。我只想调用“public ActionResult SubmitMyData”并返回“veiw1”。2:veiw1这个名字是真的。3:输出对我来说并不重要。这只是一条信息。假设您的url
被正确解析,那么它应该正确调用它。2.我只是想确定那不是打字错误。3.您提到输出并不重要,但希望返回一个视图。在success
函数中输出的参数(即上例中的data
)将包含视图将呈现的所有HTML,因此如果要显示它,可以使用类似$(element).HTML(data)的内容代码>。您是否尝试在控制器操作中放置断点以确保正确填充模型?谢谢,它可以工作。如果你有时间,请引导我。这就是问题所在。但我不调用我的web api。我想加载新页面(视图)。但数据对我来说并不重要。我只想在我的控制器中调用“public ActionResult SubmitMyData([FromBody]MyParamModel mydata)”。