मेरे वेब ऐप में मेरे पास ग्रिड सूची है। मैं एक पंक्ति का चयन करता हूं और फिर एक पॉपअप विंडो में आंशिक अद्यतन दृश्य (जिसे मैं नया डेटा भी जोड़ने के लिए उपयोग करता हूं) दिखाने के लिए संपादन बटन पर क्लिक करता हूं। दृश्य दिखाता है, लेकिन मेरे पास टेक्स्टबॉक्स में कोई मान नहीं है। मैं devextreme घटकों का उपयोग करता हूं, लेकिन मुझे लगता है, मेरी समस्या का इससे कोई लेना-देना नहीं है (शायद मैं गलत हूं)।

यह ऑनक्लिक कोड है:

function editrow_onClick() {
        var key = $("#grid").dxDataGrid("instance").getKeyByRowIndex(selectedRowIndex);
        $.ajax({
            url: '/MasterData/Sender/UpdateSender/'+key,
        }).done(function (response) {
            var popup = $("#sender-popup").dxPopup("instance");
            popup.option("contentTemplate", function (content) {
                content.append(response);
            });
            popup.show();
        });
    }

अगर मैं संपादन बटन पर क्लिक करता हूं, तो मुझे सही यूआरएल मिलता है जैसे /MasterData/Sender/UpdateSender/3.

संबंधित नियंत्रक क्रिया इस तरह दिखती है:

[Route("{id}")]
    public IActionResult UpdateSender(long SenderId)
    {
        return PartialView("NewSender", SenderRepository.GetSender(SenderId));
    }

नियंत्रक वर्ग के शीर्ष पर मेरे पास संगत विशेषता है: [Route("MasterData/[controller]/[action]")]

मैं आईडी का परीक्षण करता हूं, कार्रवाई पूरी हो गई है, लेकिन SenderId 0 है। मुझे उम्मीद है कि f.e. 3. मुझे लगता है कि यह खाली दृश्य का कारण होना चाहिए। SenderId 0 (डिफ़ॉल्ट मान) क्यों है?

मैं अद्यतन दृश्य भी पोस्ट करता हूं, शायद यह समस्या का स्रोत है (AddSender कार्रवाई को परेशान न करें, मैं इसे सशर्त रूप से बदलने की योजना बना रहा हूं, अगर मुझे अद्यतन डेटा काम कर रहा है):

@model Sender

<form asp-action="AddSender" asp-controller="Sender" method="post">
    @using(Html.DevExtreme().ValidationGroup()) { 
        @(Html.DevExtreme().Form<Sender>()
            .ID("form")
            .ColCount(1)
            .Items(items => {
                items.AddSimpleFor(m => Model.Name);
                items.AddSimpleFor(m => Model.Address);
                items.AddSimpleFor(m => Model.ContactPerson);
                items.AddSimpleFor(m => Model.ContactEmail);
                items.AddGroup().Items(groupItem => groupItem.AddSimple().Template(
                @<text>
                    <div style="text-align: right">
                        @(Html.DevExtreme().Button().ID("save").Text("Mentés").Width(100).Type(ButtonType.Success).UseSubmitBehavior(true))
                        @(Html.DevExtreme().Button().ID("cancel").Text("Mégsem").Width(100).Type(ButtonType.Normal).OnClick("close_onClick"))
                    </div>
                </text>));
            })
            .LabelLocation(FormLabelLocation.Top)
            .FormData(Model)
        )
    }
</form>

<script>
    function close_onClick() {
        $("#sender-popup").dxPopup("hide");
    }
</script>
0
derstauner 19 अप्रैल 2020, 12:05

1 उत्तर

सबसे बढ़िया उत्तर
[Route("{SenderId}")] public IActionResult UpdateSender(long SenderId) { return PartialView("NewSender", SenderRepository.GetSender(SenderId)); }

id को SenderId से बदलने का प्रयास करें। फिर क्रिया विधि वांछित मान के साथ हिट होगी।

0
Aman singh Parihar 19 अप्रैल 2020, 09:13