2017-09-10 74 views
0

我需要傳遞對象到我的模式。現在我有這樣的事情:ASP.Net MVC 5將數據傳遞到模態

@for (int i = 0; i < @Model.Count; i++) 
{ 
    <div id="contentDiv" style="margin: 10px"> 
     <div class="form-group"> 
      <div> 
       DAY : @Model[i].Day.Day/Hour : @Model[i].Hour 
      </div> 
      <div class="form-group"> 

       <button id="reservationButton" class="btn-default btn-lg" disabled="@Model[i].IsHourTaken()" onclick="@($"OpenModalPopUp('{i}')");">Book</button> 
      </div> 
     </div> 
    </div> 
} 

我的JS:

function OpenModalPopUp(id) { 
    $('#myModal').modal(); 
}; 

和我的模式:

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" 
aria-labelledby="myModalLabel"> 
<div class="modal-dialog" role="document"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" 
        aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h4 class="modal-title" id="myModalLabel">Book this hour!</h4> 
     </div> 
     <div class="modal-body"> 
      <div> 
       <div> 
        <div class="row"> 
         <b>Day:</b> 
         <div class="col-lg-5"> 
          <span class="reservationDay"> @Model[indexOftheDay].Day </span> 
         </div> 
        </div> 
        <div class="row"> 
         <b>Hour:</b> 
         <div class="col-lg-5"> 
          <span class="reservationHour"> @Model[indexOftheDay].Hour </span> 
         </div> 
        </div> (......) 

我的問題是在這裏@Model[indexOftheDay].Day我不知道如何通過indexOftheDay我模態。

在此先感謝!

+0

哪裏'modal'局部視圖在主視圖中呈現?你是否爲'Model'中的每個項目創建了一個模態,或者你有一個'modal',並且想要根據點擊更新模態? – adiga

+0

我沒有局部視圖,該模式是直接在我的主要view.I有一個模式,我想我的更新基於點擊 – Bourni

+0

模式然後馬蘇德Sadeghi的答案應該爲你工作 – adiga

回答

0

如果你的模型是這樣的:

//TestModel: Name of your model 
public class TestModel 
    { 
     public int Id { get; set; } 
     public DateTime Day { get; set; } 
     public DateTime Hour { get; set; } 

     public bool IsHourTaken() 
     { 
      //your code 
      return false; 
     } 
    } 

控制器必須像:

//HomeController: name of your controller 
public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      //get list from db or ... 
      List<TestModel> models = new List<Models.TestModel>() 
      { 
       new Models.TestModel { Day = DateTime.Now, Hour = DateTime.Now, Id = 1}, 
       new Models.TestModel { Day = DateTime.Now, Hour = DateTime.Now, Id = 2}, 
       new Models.TestModel { Day = DateTime.Now, Hour = DateTime.Now, Id = 3}, 
      }; 

      return View(models); 
     } 

     public ActionResult Details(int Id) 
     { 
      //find item from db or ... 
      var model = new Models.TestModel { Day = DateTime.Now, Hour = DateTime.Now, Id = 1 }; 
      return PartialView("_ModalView", model); 
     } 
    } 

你的觀點一定是喜歡:

@model IEnumerable<WebApplication4.Models.TestModel> 
@foreach (var item in Model) 
{ 
    <div id="contentDiv" style="margin: 10px"> 
     <div class="form-group"> 
      <div> 
       DAY : @item.Day 
      </div> 
      <div class="form-group"> 
       <button id="reservationButton" data-id='@item.Id' class="btn-default btn-lg" disabled='@item.IsHourTaken()'>Book</button> 
      </div> 
     </div> 
    </div> 
} 

<script> 
    var detailUrl = '/Home/Details'; 
    $(function() { 
     $(".btnDetail").click(function() { 
      var $buttonClicked = $(this); 
      var id = $buttonClicked.attr('data-id'); 
      var options = { "backdrop": "static", keyboard: true }; 
      $.ajax({ 
       type: "GET", 
       url: detailUrl, 
       contentType: "application/json; charset=utf-8", 
       data: { "Id": id }, 
       datatype: "json", 
       success: function (data) { 
        debugger; 
        $('#myModalContent').html(data); 
        $('#myModal').modal(options); 
        $('#myModal').modal('show'); 

       }, 
       error: function() { 
        alert("Dynamic content load failed."); 
       } 
      }); 
     }); 
    }); 

</script> 

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" 
    aria-labelledby="myModalLabel"> 
    <div id='myModalContent'></div> 
</div> 

,你必須有一個PartialView就像這樣:

@model WebApplication4.Models.TestModel 
<div class="modal-dialog" role="document"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" 
        aria-label="Close"> 
       <span aria-hidden="true">&times;</span> 
      </button> 
      <h4 class="modal-title" id="myModalLabel">Book this hour!</h4> 
     </div> 
     <div class="modal-body"> 
      <div> 
       <div> 
        <div class="row"> 
         <div class="col-lg-5"> 
          <b> 
           Day: 
           <span class="reservationDay"> @Model.Day </span> 
          </b> 
         </div> 
        </div> 
        <div class="row"> 
         <div class="col-lg-5"> 
          <b> 
           Hour: 
           <span class="reservationHour">@Model.Hour </span> 
          </b> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
+0

<按鈕ID =「reservationButton」類= 「BTN-默認BTN-LG」 的onclick = 「@($」 OpenModalPopUp( '{@模型[I] .GetDay()},{@Model [I] .GetHour()}') 「);」 >書 –

+0

@Bourni如果你的第二個答案是一個問題,這個評論爲它的水平。 –

0

謝謝先生! 我設法做到這一點是這樣的:

<button id="reservationButton" class="btn-default btn-lg" disabled="@Model[i].IsHourTaken()" onclick="@($"OpenModalPopUp('{@Model[i].GetDay()}')");">Book</button> 

JS:

function OpenModalPopUp(reservationDay) { 
    $('.reservationDay').text(reservationDay); 
    $('#myModal').modal(); 
}; 

,並在我的模式

<div class="modal-body"> 
      <div> 
       <div class="container-fluid"> 
        <div class="row"> 
         <div class="col-xs-3"> 
          <b>Day</b> 
         </div> 
         <div class="col-xs-9"> 
          <span class="reservationDay"/> 
         </div> 
        </div> 

可惜的是接下來的問題,我面對的是,由於某種原因(錯誤:恆定值預期...)我不能傳遞兩個參數,以我的功能:(我的更新功能如下:

function OpenModalPopUp(reservationDay,reservationHour) { 
     $('.reservationDay').text(reservationDay); 
     $('.reservationHour').text(reservationHour); 
     $('#myModal').modal(); 
    }; 
相關問題