簡體   English   中英

Asp.net MVC 4 getJson可用於創建,但不可用於編輯。 似乎在編輯中有一個奇怪的網址

[英]Asp.net MVC 4 getJson work for create but not for edit. Seems to have an odd url in edit

我正在編寫一個MVC 4應用程序,我有一個javascript函數來支持幾個級聯的下拉菜單。 javascript位於js文件中,我正嘗試將其用於創建和編輯視圖。 它適用於創建視圖,但不適用於我的編輯視圖。 我已經使用IE的開發人員工具查看了網絡流量,並注意到create調用中的URL是正確的Controller / MyActionMethod。 來自編輯調用的url為controller / edit / controller / MyActionMethod。

我目前正在使用默認的路由配置,它似乎運行良好,因此我並沒有對其進行深入研究。

關於在編輯案例中為什么將controller / edit /預先附加到URL的任何想法? 知道如何解決嗎?

如果有用,我會發布代碼,但我認為這可能是我對網址和路由不了解的東西。

謝謝

這是JavaScript

$(function () {
    $.getJSON("ProfessionTypeList", function (data) {
        var items = "<option>---------------------</option>";
        $.each(data, function (i, professionType) {
            items += "<option value='" + professionType.Value + "'>" + professionType.Text + "</option>";
    });
    $("#ProfessionTypeId").html(items);
   })
});

下一行

$.getJSON("ProfessionTypeList",

將生成表單的URL

http://domain.com/Controller/ActionName/ProfessionTypeList

即它將在URL末尾附加ProfessionTypeList

您應該嘗試使顯式URL完整路徑。 CSHTML文件中,您可以使用@Url.Action("ProfessionTypeList")

謝謝彗星!

這是我在幫助他人時所做的一些詳細信息。 我敢肯定,有一種更干凈的方法不使用隱藏字段。 不確定是否重要。

我使用URL作為值創建了隱藏字段。

    @Html.Hidden("ProfessionTypeListUrl",@Url.Action("ProfessionTypeList", "IsolatedPersonDetailAtEvent"), new { id = "ProfessionTypeListUrl" })
    @Html.Hidden("ProfessionSubTypeListUrl",@Url.Action("ProfessionSubTypeList", "IsolatedPersonDetailAtEvent"), new { id = "ProfessionSubTypeListUrl" })

然后我在我的js中查找了它們。

  $(function () {

        var actionUrl = $("#ProfessionTypeListUrl").attr('value');

        $.getJSON(actionUrl, function (data) {
            var items = "<option>---------------------</option>";
            $.each(data, function (i, professionType) {
                items += "<option value='" + professionType.Value + "'>" + professionType.Text + "</option>";
            });
            $("#ProfessionTypeId").html(items);
        })
    });


    $("#ProfessionTypeId").change(function ()
    {
        **var actionUrl = $("#ProfessionSubTypeListUrl").attr('value');**


        $.getJSON(actionUrl+"/" + $("#ProfessionTypeId > option:selected").attr("value"), function (data) {
            var items = "<option>---------------------</option>";
            $.each(data, function (i, subType) {
                items += "<option value='" + subType.Value + "'>" + subType.Text + "</option>";
            });
            $("#ProfessionSubTypeId").html(items);
        });
    });
</script>

暫無
暫無

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

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