Шаблон редактора в почтовом звонке не проходит модель правильно - PullRequest
2 голосов
/ 23 марта 2012

Привет, ребята, кто-то помог мне 2 дня назад с решением для создания нескольких текстовых полей из списка в модели домена с помощью бритвы, используя шаблон редактора, и я поставил немного js, чтобы сделать его немного более динамичным и все, но когдая делаю пост-вызов метода действия в контроллере, он не обновляет значения внутри текстовых полей, я помещу здесь несколько кодов, может быть, вы знаете, в чем проблема.

это то, чего я хочу достичьa form to send messages up to ten recipients

//AntiBot Field
    public string Customer { get; set; }

    public int ContentItemId { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }

    public int UserId { get; set; }
    public string Salutation { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public string Email { get; set; }


    [Display(Name = "Recipients")]
    public List<Recipient> Recipients { get  
                                            { return new List<Recipient> 
                                                {
                                                    new Recipient { Name = "", Email = "" },                                                        
                                                    //x10
                                                }; 
                                             } 
                                      }

    [Required]
    [Display(Name = "Nachricht")]
    public string Message { get; set; }
}

public class Recipient{
    [Display(Name = "Recipient Name:")]
    public string Name  { get; set;}

    [Display(Name = "Recipient Email Address:")]
    [DataType(DataType.EmailAddress)]
    public string Email { get; set;}
}

каждое из этих полей ввода имеет эти свойства , поэтому у меня есть до десяти полей, и каждое из этих полей имеет идентификатор Recipient_ (1_10) _Name / Email

это мой взгляд

@using (Html.BeginForm("Submit", "Share"))
 { 
     @Html.AntiForgeryToken() 
     @Html.HiddenFor(m => m.UserId)
     @Html.HiddenFor(m => m.ContentItemId)
     @Html.TextBoxFor(m => m.Customer, new { @class = "b2a534d1" })        
     <p>Hi: @Html.DisplayTextFor(m => m.Salutation) @Html.DisplayTextFor(m => m.Firstname) @Html.DisplayTextFor(m => m.Lastname)</p>            
     <table border="0" style="padding:5">
        <tr>
            <td class="editor-label">@Html.LabelFor(m => m.Title): </td>
            <td class="editor-field">@Html.DisplayTextFor(m => m.Title)

            </td>
        </tr>
        <tr> 
            <td class="editor-label">@Html.LabelFor(m => m.Description): </td>
            <td class="editor-field">@Html.DisplayTextFor(m => m.Description)

            </td>
        </tr>
        <tr>
            <td>@Html.LabelFor(m => m.Message)</td>
            <td>@Html.TextAreaFor(m => m.Message)</td>
        </tr>             
        </table>
        <table >                       
            @Html.EditorFor(m => m.Recipients)
        </table>
        <table>                   
            <tr>
                <td>
                    <a href="#" id="add-recipient" class="small button">Add Recipient</a></td>            
                <td><input type="submit" class="button med primary" style="float: right;" value="ABSENDEN" /></td>
            </tr>
        </table>      
 }    

и мой получатель

@model PetterLetter.Application.Models.Recipient


<p class="recipient"> Name: @Html.EditorFor(x=>x.Name) Email: @Html.EditorFor(x => x.Email) </p>

и после отладки решения это то, что я получаю из модели представления.

enter image description here

у этого получателя должны быть значения, введенные в полях ввода шаблона редактора ??

что я делаю не так?

1 Ответ

0 голосов
/ 23 марта 2012

У меня была похожая проблема с динамически загружаемой формой, и решение можно почерпнуть из сообщения Фила Хаака.

В результате, когда вы загружаете более одной из этих форм, вы должны присвоить им другое значение индекса (не [0] каждый раз).

Я решил это, используя скрытое поле для индекса коллекции и присвоив ему уникальное значение. В действительности это может быть что угодно, например строка даты и времени, при условии, что значение индекса также используется в каждом из входных имен. Прочитайте связанный пост, особенно раздел непоследовательных индексов.

...