none
Добавление записей в таблицу БД RRS feed

  • Вопрос

  • в общем вопрос такой, как добавить запись в таблицу под названием Obsha9, которая содержит поля указанные во вьюхе. тут в принципе 2 непонятных момента 

    что же нужно писать в скобках Create и почему же все таки во вьюхе не видит нужных мне полей для добавления.

        @using ReitingTeacher.Models
        @using (Html.BeginForm()) {
    	@Html.ValidationSummary(true)
    	<fieldset>
            <legend></legend>
     
            <div class="editor-label">КОДФИО</div>
            <div class="editor-field"> @Html.EditorFor(model => model.kodfio) </div>
     
            <div class="editor-label">Код подразделения работы</div>
            <div class="editor-field"> @Html.EditorFor(model => model.kodpodrazd)</div>
     
            <div class="editor-label">Количество ед. работ</div>
            <div class="editor-field">@Html.EditorFor(model => model.kolvoedrabot)</div>
     
            <div class="editor-label">Наименование работ</div>
           <div class="editor-field">@Html.EditorFor(model => model.Naimenrabot)</div>
            <div class="editor-label">Балл</div>
           <div class="editor-field">@Html.EditorFor(model => model.Itogovball)</div>
            <div class="editor-label">Комментарий</div>
           <div class="editor-field">@Html.EditorFor(model => model. )</div>
            <p>
                <input type="submit" value="Добавить запись" />
            </p>
        </fieldset>
    }
     
    <div>
    	@Html.ActionLink("Home", "Index")
    </div>
      
            [HttpPost]
             public ActionResult Create(ReitingTeacher.Models.Obsha9 kodfio)
    {
        //Добавляем запись в таблицу
        _db.Obsha9.Add(kodfio);
        _db.SaveChanges();
        // перенаправляем на главную страницу
        return RedirectToAction("Index");
    }
            
           




    • Изменено EvgeniyO 7 июня 2013 г. 8:39

Ответы

Все ответы

  • Вам надо использовать строго типизированное представление, а в скобках задать тип модели (название класса).
    Модератор
  • у меня представление строго типизированное. вот полный код представления 
    @{
        ViewBag.Title = "Dobav";
    }
    <h2>Добавление записи</h2>
    
    @using ReitingTeacher.Models
    @model IEnumerable<ReitingTeacher.Models.Job>
     
    @{
        ViewBag.Title = "Добавление записи";
    }
     
    <h2></h2>
    
    @using ReitingTeacher.Models
    
     
    @using (Html.BeginForm("Dobav", "Dobav", FormMethod.Get))
    {
        @Html.DropDownList("razdId")
        <input type="Submit" value="Выбрать"/>
    }
       
    
    <table>
                <tr>
                <td><p>Код подраздела</p></td>
                <td><p>Наименование работ</p></td>
                <td><p>Код раздела</p></td>
                <td><p>Ед. измерения</p></td>
                <td><p>Баллы</p></td>
                <td><p>Действие</p></td>
                </tr>
    
        @foreach (var job in Model)
        {
            <tr>
                
                <td>@job.KodPodrazd</td>
                <td>@job.NaimenRabot</td>
                <td>@job.KodRazd</td>
                <td>@job.EDizmereniya</td>
                <td>@job.Balls</td>
                <td>@Html.ActionLink("Добавить", "Edit", new { id= job.KodPodrazd})
                 
              
                  
                         </td>
                
                
                 </tr>
        }
    </table>
    
        @using ReitingTeacher.Models
        @using (Html.BeginForm()) {
    	@Html.ValidationSummary(true)
    	<fieldset>
            <legend></legend>
     
            <div class="editor-label">КОДФИО</div>
            <div class="editor-field"> @Html.EditorFor(model => model.kodfio) </div>
     
            <div class="editor-label">Код подразделения работы</div>
            <div class="editor-field"> @Html.EditorFor(model => model.kodpodrazd)</div>
     
            <div class="editor-label">Количество ед. работ</div>
            <div class="editor-field">@Html.EditorFor(model => model.kolvoedrabot)</div>
     
            <div class="editor-label">Наименование работ</div>
           <div class="editor-field">@Html.EditorFor(model => model.Naimenrabot)</div>
            <div class="editor-label">Балл</div>
           <div class="editor-field">@Html.EditorFor(model => model.Itogovball)</div>
            <div class="editor-label">Комментарий</div>
           <div class="editor-field">@Html.EditorFor(model => model. )</div>
            <p>
                <input type="submit" value="Добавить запись" />
            </p>
        </fieldset>
    }
     
    <div>
    	@Html.ActionLink("Home", "Index")
    </div>
    вот так ? 
     [HttpPost]
             public ActionResult Create(ReitingTeacher.Models.Obsha9 kodfio)
    {
        //Добавляем игрока в таблицу
        _db.Obsha9.Add(kodfio);
        _db.SaveChanges();
        // перенаправляем на главную страницу
        return RedirectToAction("Index");
    }
            
           
    
            
            }
    сейчас ошибки в контроллере нет, kodfio - поле таблицы obsha9
  • Измените @model IEnumerable<reitingteacher.models.job>на @model ReitingTeacher.Models.Job, так как вам нужен один объект, а не список.</reitingteacher.models.job>
    public ActionResult Create(ReitingTeacher.Models.Job kodfio)
    А в метод действи нужно указывать то класс данные которого вы передаёте в модель и получаете обратно. Насколько я понял это Job.
    <reitingteacher.models.job></reitingteacher.models.job>
    Модератор