簡體   English   中英

在 div MVC 中加載部分視圖

[英]Load partial view in a div MVC

單擊它時,我的 MVC 視圖上有一個按鈕,它應該通過調用一個以 object 作為參數的操作在“div”中添加一個局部視圖

我嘗試了這樣的事情:

$('#buttonId').onclick(function(){

$('#divid').load(@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass}))

});

但它會在頁面加載本身而不是單擊按鈕時加載操作結果/部分視圖

任何想法?

嘗試使用

@Url.Action

代替

@Html.Action

或者您可以使用ajax,例如:

$('#buttonId').click( function() {
    $.ajax({
        type: 'POST',
        url: '@Url.Content("~/ControllerName/ActionName")',
        data: objectToPass,
        success: function (data) {
           $('#divid').innerHTML = data;
        }
    });
}

在div MVC 4中加載局部視圖

最近我想在進行大量研發后加載部分視圖,這對我來說很有用

$.ajax({
    type: 'POST',
    url: '@Url.Content("~/ControllerName/ActionName")',
    data: {
        title: title
    },
    success: function(result) {
        $('#divid').innerHTML = result;
    }
});

並在部分視圖操作控制器代碼中

public PartialViewResult ShowCategoryForm(string title)
{
    Model model = new Model();
    model.Title = title;
    return PartialView("~/Views/ControllerName/PartalView.cshtml", model);
}
<script type="text/javascript">
    $(document).ready(function () {
        $('#buttonId').click(function () {
            $('#divid').load('@Url.Action("About", "Home")');
        });
    });
</script>

<a id="buttonId">Load partial view or Any URL</a>

<div id="divid" style="height:100px; width:400px";>

</div>

load需要一個字符串,如果你看一下你生成的源代碼,就會生成一個變量路徑:

$('#buttonId').click(function(){
    $('#divid').load(yoururl/);
});

但你想要的是:

$('#buttonId').click(function(){
    $('#divid').load("yoururl/");
});

代碼應如下所示:

$('#buttonId').click(function(){
    $('#divid').load('@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass})');
});

但正如我所看到的那樣,負載應該正常工作,直到你點擊#buttonId

在ajax調用成功函數追加結果

ajax call =>

url: 'controllername/methodname'
 success: function (partialviewresult)
{ 
          $('#div').append(partialviewresult);
}

  // inside controller
 public ActionResult methodname()
{
    return PartialView("~/a/a.cshtml");
}

和控制器必須返回部分視圖作為結果

html(data) 代替 innerHTML 為我工作;

$('#buttonId').click( function() {
$.ajax({
    type: 'POST',
    url: '@Url.Content("~/ControllerName/ActionName")',
    data: objectToPass,
    success: function (data) {
       $('#divid').html(data);
    }
});}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM