2012-03-26 2 views
0

나는 이것을 설명하려고하는 여러 게시물을 살펴 봤지만 대부분은 텍스트를 게시하는 단지 기본적인 예제입니다. 이제 Ajax.BeginForm 또는 Jquery를 사용하여 게시 할 수 있습니다. 나는 매우 숙련 된 javascript 개발자가 아니다. 하지만 어쩌면 누군가는 무엇을 사용해야할지 생각하고 있습니다. 코드에. 여기 게시 및 Jquery asp.net mvc 4를 사용하여 데이터를 수신합니다.

@model EL4.Administrasjon.Models.AvviksModel 
<link rel="stylesheet" type="text/css" href="../../Content/Form.css" /> 
@{ 
ViewBag.Title = "Details"; 
} 

<h2>@Model.Avvik.Subject</h2> 

<div id="contact-area"> 

    <label for="TidRegistrert">Tid registrert</label> 
<input type="text" name="TidRegistrert" id="TidRegistrert" value="@Model.Avvik.RegistrertTid" readonly="true" /> 

<label for="ansnr">Avviks ID</label> 
<input type="text" name="AvviksID" id="AvviksID" value="@Model.Avvik.AvviksID" readonly="true" /> 

<label for="ansnr">Kategori</label> 
<input type="text" name="cat" id="cat" value="@Model.Avvik.AvviksKategori.Navn" readonly="true" /> 

<label for="GjelderAns">Gjelder ansatt</label> 
<input type="text" name="gjelderAns" id="gjelderAns" value="@Model.Avvik.GjelderAnsattNr" readonly="true" /> 

<label for="RegistrertAvAns">Registrert av</label> 
<input type="text" name="RegistrertAvAns" id="RegistrertAvAns" value="@Model.Avvik.RegistrertAvIDAnsNr" readonly="true" />     
</div>  
@foreach (var item in Model.Avvik.AvviksNotat) { 
<div class="gradientBoxesWithOuterShadows"> 
    <h3>@item.SkrevetAv</h3>  
    @item.SkrevetDato<br /> 

     <p>@item.Note</p> 
    </div>  
}   

내 컨트롤러

 public ActionResult Details(int? id) 
    { 
     if (id != null) 
     { 
      AvviksModel model = new AvviksModel(); 
      HM_000_EL4Entities entHm = new HM_000_EL4Entities(); 

      Avvik TheAvvik = ent.Avvik.Where(a => a.AvviksID == id).FirstOrDefault(); 

      if (TheAvvik != null) 
      {      
       model.Avvik = TheAvvik; 
       return View(model); 
      } 
     } 

     return View(); 

그래서 것 I는 다음과 같습니다

내가 작성한 뷰 모델 느릅 나무는 내 detailals가보기로 제공 데이터가 내가 여기

public class AvviksModel 
{ 
    public Avvik Avvik { get; set; } 
    public List<AvviksNotat> Notater { get; set; } 
    public DateTime AvvikRegistrertTid { get; set; } 
    //public List<AnsattModel> Ansatte { get; set; } 
    public String NewNote { get; set; } 
    public int RegistrertAvAnsNummer { get; set; }   
} 

이 필요 보유 "AvviksNotat"의 목록입니다. 세부 양식 하단에 텍스트 상자를 만들고 싶습니다. 새로운 설명을 입력하고이를 서버에 게시하고 "AvviksNotat"목록 상단에 새 결과를 반환 할 수 있습니다. 애니메이션을 사용하여 멋지기도합니다.

답변

0

이것에 대한 해결책을 찾았습니다.

@using (Ajax.BeginForm("AddNotat", "Avvik", new AjaxOptions 
{ 
HttpMethod = "GET", 
InsertionMode = InsertionMode.InsertBefore, 
UpdateTargetId = "notes", 
OnSuccess ="AfterInsert" 
})) 
{ 
<h3>Legg til kommentar</h3> 
<label for="note">Notat</label>  
<textarea name="notatText" id="notatText" rows="10" cols="30"></textarea> 

<label for="ans">Registert av</label> 
<input type="text" name="ans" value="@Model.Avvik.RegistrertAvIDAnsNr" /> 
<input type="submit" value="Legg til" id="TheAddNoteButton"/> 
@Html.Hidden("id",Model.Avvik.AvviksID) 
} 
+0

아마도 더 좋은 방법이 있습니다. 여기서 볼 수있는 문제 중 하나는 모델의 맨 아래에 숨겨져있는 것입니다.이 ID는 모델에서 사용할 수 있지만, 여기 에서처럼 폼에 추가하지 않고 컨트롤러에 Ajax 호출을 전달하는 방법을 잘 모르겠습니다. – espenk

관련 문제