2012-05-12 6 views
10

मैं एक नोपॉमर्स पर काम कर रहा हूं, और इनवॉइस उत्पन्न करने की आवश्यकता है (कस्टम जो वे पहले से ही प्रदान नहीं करते हैं, क्योंकि यह हमारे उद्देश्य को हल नहीं करता है)। हमें कंट्रोलर की विधि का उपयोग करके नए टैब (अन्य सीएसटीएमएल फाइल का उपयोग करके) में चालान उत्पन्न करने की आवश्यकता है, मैं भी मॉडल डेटा को देख रहा हूं।नियंत्रक की विधि से नए टैब में cshtml फ़ाइल कैसे खोलें?

<tr> 
     <td class="adminTitle"> 
      @Html.NopLabelFor(model => model.ProbableDeliveryDate): 
     </td> 
     <td class="adminData"> 
      @Html.EditorFor(model=>model.ProbableDeliveryDate) 
     </td> 
     </tr> 
     <tr> 
      <td> 
      @if(Model.CanGenrateInvoice) 
      { 
       <input type="submit" name="generateinvoice" value="@T("Admin.Orders.Fields.generateinvoice")" id="generateinvoice" class="adminButton" /> 
      } 
      </td> 
     </tr> 

मैं डेटा पोस्ट करने के लिए विधि नियंत्रक को probableDeliveryDate का मूल्य प्राप्त करने के लिए है और उसके बाद नए टैब में देखने खोलना चाहते हैं।

मैं यह कैसे कर सकता हूं?

उत्तर

14

आप एक Html.ActionLink के माध्यम से प्रथम पृष्ठ से कार्रवाई करने के लिए मिल रहा है तो आप ऐसा कर सकते हैं:

Html.ActionLink("Open Invoice", "ActionName","ControllerName", new { id = Model.InvoiceID }, new { target = "_blank" }); 

निर्दिष्ट लक्ष्य = "_blank" नया टैब

अद्यतन में खुलेगा

जब से तुम नियंत्रक को मॉडल पोस्ट कर रहे हैं (मुझे उम्मीद थी RedirectToAction एक नई विंडो/टैब खोलने में मदद कर सकता है, लेकिन यह मामला होने की नहीं लगती है)

मेरे spidy भावना प्रवाह आप यद्यपि है पर झुनझुनी है ... यह सिर्फ मुझे है, लेकिन मैं नियंत्रक

  • सहेजें के रूप में

    1. पोस्ट कुछ थोड़ा अलग .. इस तरह करना होगा मॉडल डेटा कि चालान उत्पन्न करता
    2. कार्रवाई
    3. को InvoiceID लौटें मॉडल
    4. को InvoiceID जोड़े मॉडल दृश्य
    5. को वापस भेजें उपयोगकर्ता को सूचित करें कि
    6. चालान जेनरेट और एक लिंक दिखाने गया था - ऊपर की तरह - कि उपयोगकर्ता चालान या
    7. इस अगर कोई

    आपके व्यू सकते थे मॉडल त्रुटियों को दिखाने के लिए एकदम सही स्वच्छ समाधान प्रदान करता है खोलने के लिए अनुमति देता है

    @{ 
        if(Model.InvoiceID != null && Model.InvoiceID !=0) { 
         @Html.ActionLink("Open Invoice", "ActionName","ControllerName", new { id = Model.InvoiceID }, new { target = "_blank" }); 
        } 
    } 
    
  • +0

    ठीक है, मैं देखने के लिए अगर RedirectToAction एचटीएमएल स्थापित गुण और कोई नया दृश्य खोलने लेकिन उस मामले नहीं लगती करने की क्षमता थी देख रहा था: ऐसा ही किया है कि उस्तरा कोड का एक टुकड़ा है। –

    +0

    क्या कोई और तरीका है? –

    +0

    मैंने एक और संभावित तरीका दिखाने के लिए उत्तर अपडेट किया –

    संबंधित मुद्दे