फॉर्म एक अनुरोध प्राप्त करता है और निम्नलिखित दृश्य प्राप्त करता है:

@using System.Linq;
@model List<Searchphone>


<h2 class="search1"></h2>
 <form class="priceeconom1" method="post" asp-action="Index" asp-controller="Home">


    @foreach (var p in Model)
<table>

    {


    <tr class="searchdata">
        <td class="flight">@p.ColourPhone</td>
        <td class="fromtable">@p.TypePhone</td>
        <td class="fromtable">@p.SizePhone</td>
        <td class="fromtable">@p.PriceLight</td>
        <td class="fromtabletime">@p.PriceOk</td>
        <td class="totable">@p.PriceHigh</td>


    </tr>

    }
</table>

सभी डेटा कई लिंक्ड टेबल से उत्पन्न होते हैं। यह माना जाता है कि उपयोगकर्ता "मूल्य" में से एक का चयन करता है और फॉर्म को पोस्ट अनुरोध में चयनित डेटा और मूल्य को पास करना होगा।

2) मैंने इसे इस तरह किया

@using System.Linq;
@model List<Searchphone>


<h2 class="search1"></h2>

  <form class="priceeconom1" method="post" asp-action="Index" asp-controller="Home">

    @foreach (var p in Model)
<table>

    {


    <tr class="searchdata">
        <td class="flight"><input type="text" name="@p.ColourPhone</td>
        <td class="fromtable"><input type="text" name="@p.TypePhone</td>
        <td class="fromtable"><input type="text" name="@p.SizePhone</td>
        <td class="pricelight"><input type="radio" name="price"value="@p.PriceLight.ToString("")"/>@p.PriceLight.ToString("")</td>
        <td class="fromtabletime"><input type="radio" name="price"value="@p.PriceOk.ToString("")/>@p.PriceOk.ToString("")</td>
        <td class="totable"><input type="radio" name="price"value="@p.PriceHigh.ToString("")/>@p.PriceHigh.ToString("")</td>
         <td class="button13"><button type="submit" asp-action="Buy" asp-route-id="@p.PhoneId" asp-controller="Home">Next</button></td>



    </tr>

    }
</table>
</form>

जब मुझे अगले पोस्ट-फॉर्म पर जाने की आवश्यकता हो। और मैंने अगला दृश्य किया

@using System.Linq;
@using System;


@model List<Searchphone>



@{
    ViewBag.Title = "PhoneId";
}


<h2 class="orderinformation">Order Data</h2>
<form method="post" class="formpass">
    <input type="hidden" id="PhoneId"value="@ViewBag.PhoneId" name="PhoneId">
    <label for="OrderSurName">Surname</label><br>
    <input type="text" placeholder="Enter Surname" name="OrderSurName" required><br>

    <label for="OrderName">Имя</label><br>
    <input type="text" placeholder="Enter Name" name="OrderName" required><br>
    <button type="submit" class="button7">To pay</button>

</form>

नियंत्रक

 [HttpGet]
        public IActionResult Buy(int? id)
        {
            if (id == null) return RedirectToAction("Index");
            ViewBag.PhoneId = id;
            return View();
        }
        [HttpPost]
        public string Buy(Order order)
        {
            context.Orders.Add(order);

            context.SaveChanges();
            return "Thanks, " + order.OrderName;


        }

लेकिन मुझे समस्या है। मुझे यूआरएल मिला: ~/होम/खरीदें/0 और वापसी के साथ दृश्य "धन्यवाद,"। मुझे इनपुट ऑर्डर डेटा के लिए दृश्य नहीं मिलता है। डेटाबेस में टेबल ऑर्डर डिफ़ॉल्ट और शून्य मान प्राप्त करता है। मेरी गलती क्या है?

भाग २.अगले प्रश्न में जोड़ना

नियंत्रक

 [HttpGet]
        public IActionResult Buy(int? id, string price)
        {
            if (id == null) return RedirectToAction("Index");
            if(price=="PriceLight.ToString("")")
            ViewBag.price=PriceLight.ToString("");
            if(price=="PriceOk.ToString("")")
            ViewBag.price=PriceOk.ToString("");
             if(price=="PriceHigh.ToString("")")
            ViewBag.price=PriceHigh.ToString("");
            ViewBag.PhoneId = id;
            return View();
        }

राय

@using System.Linq;
@using System;


@model List<Searchphone>



@{
    ViewBag.Title = "PhoneId";
}


<h2 class="orderinformation">Order Data</h2>
<form method="post" class="formpass">
       <h3> <input type="hidden" name="@ViewBag.price" value="@ViewBag.price" />@ViewBag.price</h3>
    <br>
    <input type="hidden" id="PhoneId"value="@ViewBag.PhoneId" name="PhoneId">
    <label for="OrderSurName">Surname</label><br>
    <input type="text" placeholder="Enter Surname" name="OrderSurName" required><br>

    <label for="OrderName">Имя</label><br>
    <input type="text" placeholder="Enter Name" name="OrderName" required><br>
    <button type="submit" class="button7">To pay</button>

</form>
0
Fer 2 मई 2020, 12:42

1 उत्तर

सबसे बढ़िया उत्तर

फॉर्म पोस्ट विधि में जमा किया जाता है जबकि रिटर्न व्यू एक्शन केवल एक HttpGet अनुरोध स्वीकार करता है। इसलिए, यह हमेशा HttpPost कार्रवाई को प्रभावित करता है क्योंकि उनका एक ही नाम है।

मैंने आपके कोड का परीक्षण किया और पाया कि आपके पहले दृश्य में कुछ समस्याएं हैं।

[HttpGet]
  public IActionResult Buy(int? id)
  {
      if (id == null) return RedirectToAction("Index");
      ViewBag.PhoneId = id;
      return View();
  }

यह क्रिया सिर्फ एक आईडी पैरामीटर प्राप्त करती है। पूरे फॉर्म को जमा करने की कोई आवश्यकता नहीं है। मेरी राय में, आपको फ़ॉर्म का उपयोग करने की भी आवश्यकता नहीं है, बस नीचे दिए गए टैग का उपयोग करें:

@using System.Linq;
@model List<Searchphone>

<h2 class="search1"></h2>

@foreach (var p in Model)
{


    <table>
        <tr class="searchdata">
            <td class="flight"><input type="text" name="@p.ColourPhone" /></td>
            <td class="fromtable"><input type="text" name="@p.TypePhone" /></td>
            <td class="fromtable"><input type="text" name="@p.SizePhone" /></td>
            <td class="pricelight"><input type="checkbox" name="@p.PriceLight.ToString()" /></td>
            <td class="fromtabletime"><input type="checkbox" name="@p.PriceOk.ToString()" /></td>
            <td class="totable"><input type="checkbox" name="@p.PriceHigh.ToString()" /></td>
            <td class="totable"> <a asp-action="Buy" asp-route-id="@p.PhoneId" asp-controller="Home">Next</a></td>
        </tr>
    </table>

}
0
mj1313 7 मई 2020, 05:48