[英]Pass data from JavaScript function as an object parameter to @Html.Action() C#
這是我想要做的。 我希望能夠調用html動作並將一些數據作為對象參數傳遞。 唯一的事情是此數據需要從javascript函數返回。
這是我正在嘗試做的事情:
@Html.Action("someAction", "someController", new { passedData = GetDropDownData() }) <script> function GetDropDownData() { var data = "test"; return data; } </script>
基本上,我試圖將一些下拉數據從控件傳遞到使用@ Html.Action()呈現的局部視圖。 我希望能夠以某種方式將此字符串傳遞給局部視圖,所以我想我可以使用JS提取下拉數據並在呈現頁面時將其作為對象參數返回?
讓我知道您是否有任何建議或更好的方法。
謝謝!
這是不可能的,因為剃刀視圖是在服務器端編譯的,而javascript是客戶端。 因此,視圖已被編譯,而javascript在運行時運行。 一種方法是使用ajax將javascript中的變量作為查詢參數或主體值傳遞給控制器中的操作。 您可以通過創建按鈕或鏈接來實現:
<a href='#' id='clickMe'>Click me</a>
並連接jQuery完成這項工作:
<script>
$(document).ready(function(){
$('#clickMe').click(function(){
$.ajax({
type: "POST",
url: '@Url.Action("Action", "Controller")',
data: {
passedData: GetDropDownData()
},
success: function(response){
$('#placeholderForPartialView').html(response);
}
});
});
});
</script>
根據您的方法(GET或POST)類型,它看起來像這樣。 在這里,我假設您返回部分視圖,並將返回的視圖替換#placeholderForPartialView
div的內容。 如果我錯了,請糾正我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.