asp.net mvc - क्या आप पूर्ण पृष्ठ पोस्ट के बजाय आंशिक दृश्य अपडेट कर सकते हैं?



asp.net-mvc jquery (3)

JQuery के बिना नहीं।

आपको क्या करना होगा अपने आंशिक को एक div में डालें, कुछ ऐसा:

<div id="partial">
    @Html.Partial("YourPartial")
</div>

फिर, अपडेट करने के लिए (उदाहरण के लिए आईडी button ), आप यह कर सकते हैं:

$("#button").click(function () {
   $.ajax({
       url: "YourController/GetData",
       type: "get",
       data: $("form").serialize(), //if you need to post Model data, use this
       success: function (result) {
           $("#partial").html(result);
       }
   });
})

फिर आपकी कार्रवाई कुछ इस तरह दिखेगी:

public ActionResult GetData(YourModel model) //that's if you need the model
{
    //do whatever

    return View(model);
}

क्या मूल पृष्ठ को पुनः लोड किए बिना एएसपीनेट एमवीसी में आंशिक दृश्य फ़ॉर्म सबमिट करने का कोई तरीका है, लेकिन आंशिक दृश्य को केवल अपने नए राज्य में पुनः लोड करना है? डेटा-बाइंड का उपयोग करते हुए knockout.js अपडेट के समान।

मेरी डेटा तालिका कॉलम / नामों की एक चर संख्या के साथ प्रस्तुत करती है, इसलिए मुझे नहीं लगता कि knockout.js इस के लिए एक विकल्प है, इसलिए मैं इसके बजाय आंशिक दृश्य का उपयोग करने की कोशिश कर रहा हूं।


Answer #1

इस तरह की चीजों की तलाश करते समय मुझे जो सामान्य लगता है, वह लोग बहुत सीमित जानकारी देते हैं, इसलिए मैं यहां सहायता करने का प्रयास करूंगा। कुंजी एक आईडी के साथ एक div सेट अप करने के लिए है जिसे आप रिटर्न एचटीएमएल में जोड़ सकते हैं। इसके अलावा जब आपके नियंत्रक को मारना सुनिश्चित करें कि यह आंशिक लौटाता है। इस विधि के साथ कुछ संभावित समस्याएं हैं लेकिन एक अच्छे दिन पर इसे काम करना चाहिए।

<div id="CategoryList" class="widget">
    @{
        Html.RenderPartial("WidgetCategories.cshtml");
    }
</div>

          function DeleteCategory(CategoryID) {
            $.get('/Dashboard/DeleteWidgetCategory?CategoryID=' + CategoryID,
                function (data) {
                    if (data == "No") {
                        alert('The Category has report widgets assigned to it and cannot be deleted.');
                    }
                    else {
                        $('#CategoryList').html(data);
                    }

                }
            );
        }


    [HttpGet("DeleteWidgetCategory")]
    [HttpPost("DeleteWidgetCategory")]
    public IActionResult DeleteWidgetCategory(string CategoryID)
    {
        string Deleted = CategoryModel.DeleteCategory(CategoryID);

        if (Deleted == "Yes")
        {
            return PartialView("WidgetCategories");
        }
        else
        {
            return this.Json("No");
        }
    }

Answer #2

मैं आंशिक दृश्य और @ html.RenderPartial ("partialName") आंशिक सहायकों का उपयोग करके ऐसे परिदृश्यों के लिए अजाक्स फॉर्म सहायक का उपयोग करूंगा





partial-views