我正在使用 aspnetcore mvc,dotnet 版本 6。我試圖在視圖中獲取輸入。下面的代碼我試圖讓買家用戶和送貨用戶出現在一個串列中。但我無法將它們系結到控制器的模型串列中。
這是我的代碼:
public async Task<IActionResult> SendMainFlow(List<IFormFile> files, string[] DeliveryUsers, List<BuyerUsers> BuyersModel)
{
return BadRequest();
}
從觀點來看:
<form method="POST" action="/WorkManagement/SendMainFlow" enctype="multipart/form-data">
<div >
<label>
Dosyalar:
</label>
<input type="file"
name="files"
multiple/>
</div>
<hr />
<div >
<label >
Sat?n alacak ki?iler:
</label>
<div id="BuyerInputArea" >
<div >
<div >
<input type="text" name="BuyerUserName" placeholder="?sim" autocomplete="off">
<input type="text" name="BuyerUserLastName" placeholder="Soyisim" autocomplete="off">
<input type="text" name="BuyerUserMail" placeholder="E-Posta" autocomplete="off">
<div >
<button id="removeBuyer" type="button" >Kald?r</button>
</div>
</div>
</div>
<button id="addBuyer" type="button" >Ki?i Ekle</button>
</div>
</div>
<hr />
<div >
<label >
Da??t?lacak ki?iler:
</label>
<div id="DeliveryInputArea" >
<div id="DeliverySignerRow">
<div >
<input type="text" name="DeliveryUserMail" placeholder="Mail" autocomplete="off">
<div >
<button id="removeRow" type="button" >Kald?r</button>
</div>
</div>
</div>
<div id="newRow"></div>
<button id="addDealer" type="button" >Ki?i Ekle</button>
</div>
</div>
<div >
<button type="submit">
??LEM BA?LAT
</button>
</div>
</form>
我可以在這里獲得任何型別的用戶。我的意思是買家或送貨用戶。但我想獲取用戶串列。而且我的代碼還嘗試在#BuyerUserArea 中動態添加#inputBuyerRow。
不要與代碼混淆。代碼很簡單。我想用表單標簽發布我的輸入。在控制器方面,我想將任何型別的用戶放入串列中。我沒有展示模型,因為我認為這不是必需的。主要問題是我如何在BuyerModel 中獲取#inputBuyerRow 輸入,例如物件串列?#addBuyer 按鈕在代碼中添加更多#inputBuyerRow 元素。會有更多的用戶。
我怎樣才能做到這一點。我必須輸入組或其他什么嗎?我沒有找到任何例子。
我的限制是:
- 我不能使用 Ajax Jquery 或其他類似的東西。我必須使用表單標簽。
- 我必須在控制器端使用串列。
編輯:在控制器中,我嘗試使用字串陣列和模型獲取輸入,以了解視圖如何發送給我。所以也不要與這段代碼混淆。我只是在嘗試。沒什么特別的。
uj5u.com熱心網友回復:
一般在MVC應用中,提交表單時,在action方法中,會通過html元素的name屬性獲取資料。您可以從視圖到控制器按名稱訪問表單欄位
在視圖中
要傳遞字串陣列,元素應該使用相同的名稱屬性。像這樣: name="DeliveryUserMail"
<div id="DeliveryInputArea" >
<div id="DeliverySignerRow">
<div >
<input type="text" name="DeliveryUserMail" placeholder="Mail" autocomplete="off">
<input type="text" name="DeliveryUserMail" placeholder="Mail" autocomplete="off">
<div >
<button id="removeRow" type="button" >Kald?r</button>
</div>
</div>
</div>
要發送模型串列,我們應該根據串列索引設定名稱屬性,如:BuyersModel[0].BuyerUserName
<div >
<input type="text" name="BuyersModel[0].BuyerUserName" placeholder="?sim" autocomplete="off">
<input type="text" name="BuyersModel[0].BuyerUserLastName" placeholder="Soyisim" autocomplete="off">
<input type="text" name="BuyersModel[0].BuyerUserMail" placeholder="E-Posta" autocomplete="off">
</div >
<div >
<input type="text" name="BuyersModel[1].BuyerUserName" placeholder="?sim" autocomplete="off">
<input type="text" name="BuyersModel[1].BuyerUserLastName" placeholder="Soyisim" autocomplete="off">
<input type="text" name="BuyersModel[1].BuyerUserMail" placeholder="E-Posta" autocomplete="off">
</div >
在控制器中
[HttpPost]
public ActionResult Create2(string[] DeliveryUserMail, List<BuyerUsers> BuyersModel)
{
//Access string, list here
}
結果是這樣的:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/404851.html
標籤:
