所以我想做的事情几乎与您在这里找到的一样: http ://www.makeitspendit.com/calling-asp-mvc-controllers-from-jquery-ajax/
它会完全按照我想要的方式执行,但是为所有 4 个按钮编写相同的脚本并不是很干燥。(嗯,一点也不干)
我想要一个脚本来根据按钮的 ID 调用正确的视图,这样代码只需在我的页面上出现一次。我尝试将 this.id 传递到函数调用中,并在 ajax 调用的“url:”属性中使用串联,但这不起作用。
例子:
<div id="projectDiv">
<button onclick="loadProject(this.id)" id="_Project1">Project 1</button>
<button onclick="loadProject(this.id)" id="_Project2">Project 2</button>
<script>
function loadProject(projectID) {
$.ajax({
url: ("/Projects/Project/"+projectID),
datatype: "text",
type: "POST",
success: function (data) {
$('#projectDiv').html(data);
},
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
在控制器中:
[HttpPost]
public ActionResult Project(string id)
{
return View(id);
}
Run Code Online (Sandbox Code Playgroud)
我已经对此进行了全面搜索,发现了类似的东西(但不够相似,不足以得出我需要的东西),但找不到这种情况——我认为这种情况很常见,足以提供更多信息。
示例代码说明了我希望它如何工作,但我似乎无法像那样将变量传递到 url 属性中。虽然我确实对 ASP.NET MVC 很陌生,但这似乎应该是非常基本的,但我已经在这个问题上停留了一分钟。