我想製作一個視圖,它將動態生成部分視圖。每個部分視圖都有一個TextBox
用戶在其中放置商家的名稱。在MVC中從多個部分視圖中獲取數據4
下面是我的視圖代碼:
@model BrightMediaTest.merchant
@{
ViewBag.Title = "AddMerchant";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
<h2>AddMerchant</h2>
@Ajax.ActionLink("Add More", "AddMerchantPartial", "MerchantDB", new AjaxOptions { UpdateTargetId = "ajax-partial-view-box", InsertionMode = InsertionMode.InsertAfter })
@using (Html.BeginForm("AddMerchant", "MerchantDB", FormMethod.Post, new { }))
{
<ul style ="list-style: none;">
<li>
@Html.LabelFor(m => m.merchantName)
</li>
<li>
@Html.TextBoxFor(m => m.merchantName)
</li>
</ul>
<div id="ajax-partial-view-box">
</div>
<input type="submit" value="Add" />
}
正如你可以看到有代碼中的一個ActionLink的「添加更多」,這實際上增加了局部視圖在div「Ajax的局部視圖框」 。
所以,我想要達到的是當我提交表格。我想通過單擊「添加更多」鏈接來動態添加div中「ajax-partial-view-box」中添加的所有文本框的文本。
在部分視圖中沒有與文本框關聯的標識。任何幫助或建議表示讚賞。
這裏是我的局部視圖代碼:
@model BrightMediaTest.merchant
<ul style="list-style: none;">
<li>
@Html.LabelFor(m => m.merchantName)
</li>
<li>
@Html.TextBoxFor(m => m.merchantName)
</li>
</ul>
所以,我想在提交表單時添加數據庫中的所有這些商戶名稱。我有一個行動「AddMerchant」,我將用它來在數據庫中添加所有這些商家名稱。
我的商家視圖模型如下:使用實體框架生成
namespace BrightMediaTest
{
using System;
using System.Collections.Generic;
public partial class merchant
{
public merchant()
{
this.stores = new HashSet<store>();
}
public long merchantID { get; set; }
public string merchantName { get; set; }
public virtual ICollection<store> stores { get; set; }
}
此代碼。
感謝
聽起來像一個合理的計劃。你遇到的問題究竟是什麼? – Jasen
如果視圖中的所有內容都是文本框/標籤,則應該使用javascript進行操作。那麼你可以把它包裝在一個'$ .ajax()'調用你的控制器 – DLeh
你需要顯示你的局部視圖。它是否也包含'@ Html.TextBoxFor(m => m.merchantName)'? (在這種情況下,由於重複的'id'屬性,你有無效的html)。您還需要顯示您發回的方法。簽名'(string [] merchantName)'?爲什麼你有'@ Scripts.Render(「〜/ bundles/jqueryval」)',因爲沒有什麼可以驗證的? –