如何在 VS 2017 C# 和 MVC 5 中使用 ASP.Net MVC 子操作
How to use ASP.Net MVC Child Actions with VS 2017 C# and MVC 5
我有一个方案,但不知道是否可以通过子操作来实现。
我没有任何代码可以显示。基本上,在包含摘要数据的视图左侧会有一个简单的列表。在列表的每一行上还会有一个 'view details' link 或按钮。因此,我希望用户单击 link/button,然后在右侧我希望显示有关特定所选项目的更多详细信息。然后,用户可以单击另一个项目的查看详细信息并查看这些详细信息等。
如何在 ASP.Net MVC 中最好地实现这一点?
提前致谢。
这是 OP 的示例,这可能是也可能不是最好的方法,但它会起作用:
所以你的左侧面板有按钮或链接,如果你的 button/link 的文本足以从服务器拉回相关数据,只需通过 Ajax
将其传递给服务器即可,否则如果你想使用 id 或一些唯一标识符,你可以将它附加到你的 buttons/links 的 id 属性,然后将它传递给服务器,我会让你决定你想使用哪个:
//Example HTML
<div id="panelLeft">
<button id="btnOne" class="btnInfo">Info on Cats</button>
<br/>
<button id="btnTwo" class="btnInfo">Info on Dogs</button>
</div>
//Assuming you are using JQuery
//Either in your page add a script tag with this code, or add a script file
//to your project and import it into your page (View)
$(function(){
//Add click events to all your buttons by using the common className btnInfo
$('.btnInfo').on('click', function(){
const serverSideData = $(this).text(); //If you are using the text
//of the button to find the info server side
$.ajax({
url: "yourUrlToServerSideMethod",
type: "POST",
data: { yourServerSideParameter: serverSideData },
success: function(data){
//Successfully posted to server and got response
//If data is in JSON format, you can parse it with JSON.parse()
//Clear your div on the right which displays the item data
$('#divRightPanelInfo).html('');
$('#divRightPanelInfo).append(data); //If this is just a string
//Or create some pretty element(s) and append that to div
},
error: function(jqXHR, exception){
//Handle error, show error label or something
}
});
});
});
我有一个方案,但不知道是否可以通过子操作来实现。
我没有任何代码可以显示。基本上,在包含摘要数据的视图左侧会有一个简单的列表。在列表的每一行上还会有一个 'view details' link 或按钮。因此,我希望用户单击 link/button,然后在右侧我希望显示有关特定所选项目的更多详细信息。然后,用户可以单击另一个项目的查看详细信息并查看这些详细信息等。
如何在 ASP.Net MVC 中最好地实现这一点?
提前致谢。
这是 OP 的示例,这可能是也可能不是最好的方法,但它会起作用:
所以你的左侧面板有按钮或链接,如果你的 button/link 的文本足以从服务器拉回相关数据,只需通过 Ajax
将其传递给服务器即可,否则如果你想使用 id 或一些唯一标识符,你可以将它附加到你的 buttons/links 的 id 属性,然后将它传递给服务器,我会让你决定你想使用哪个:
//Example HTML
<div id="panelLeft">
<button id="btnOne" class="btnInfo">Info on Cats</button>
<br/>
<button id="btnTwo" class="btnInfo">Info on Dogs</button>
</div>
//Assuming you are using JQuery
//Either in your page add a script tag with this code, or add a script file
//to your project and import it into your page (View)
$(function(){
//Add click events to all your buttons by using the common className btnInfo
$('.btnInfo').on('click', function(){
const serverSideData = $(this).text(); //If you are using the text
//of the button to find the info server side
$.ajax({
url: "yourUrlToServerSideMethod",
type: "POST",
data: { yourServerSideParameter: serverSideData },
success: function(data){
//Successfully posted to server and got response
//If data is in JSON format, you can parse it with JSON.parse()
//Clear your div on the right which displays the item data
$('#divRightPanelInfo).html('');
$('#divRightPanelInfo).append(data); //If this is just a string
//Or create some pretty element(s) and append that to div
},
error: function(jqXHR, exception){
//Handle error, show error label or something
}
});
});
});