2013-01-04 29 views
1

我要帶按鈕的某個動作點擊 下面的代碼給出--->按鈕ASP.NET MVC行動點擊

<% if(Model!=null && Model.Count>0){%> 
<ul> 
<% foreach(var Movie in Model) 
     { 
      %> <li> <%= Movie.Id %> 
      <%= Movie.Title %> 
      <%= Movie.ReleaseDate %> 

      <input type="button" value="edit" name="edit" onclick="EditMovie" /> 
      <input type="button" value="delete" name="delete" /> </li> 
      <% } %> 
<% } %> 
</ul> 

我有一些功能做的,但如何銜接這些按鈕對這些控件?

+2

你可以有每個按鈕相關的形式,與一些動作指向一個控制器動作,或者你可以有一個Ajax調用 – jose

+0

使用'javascript'或'jquery'採取一些點擊按鈕時的動作。 –

回答

2

你可以爲每個按鍵獨立的形式:

<ul> 
    <% foreach(var Movie in Model) { %> 
    <li> 
     <%: Movie.Id %> 
     <%: Movie.Title %> 
     <%: Movie.ReleaseDate %> 
     <%= Html.BeginForm("EditMovie", "Movies", new { id = Movie.Id }, FormMethod.Post) { %> 
      <input type="submit" value="edit" name="edit" /> 
     <% } %> 
     <%= Html.BeginForm("DeleteMovie", "Movies", new { id = Movie.Id }, FormMethod.Post) { %> 
      <input type="submit" value="delete" name="delete" /> 
     <% } %> 
    </li> 
    <% } %> 
</ul> 

,然後你將有2個相應的控制器操作:

[HttpPost] 
public ActionResult EditMovie(int id) 
{ 
    ... 
} 

[HttpPost] 
public ActionResult DeleteMovie(int id) 
{ 
    ... 
} 

作爲替代使用的形式,你可以使用AJAX:

<ul> 
    <% foreach(var Movie in Model) { %> 
    <li> 
     <%: Movie.Id %> 
     <%: Movie.Title %> 
     <%: Movie.ReleaseDate %> 

     <%= Ajax.ActionLink(
      "edit", 
      "EditMovie", 
      "Movies", 
      new { id = Movie.Id }, 
      new AjaxOptions { HttpMethod = "POST" } 
     ) %> 

     <%= Ajax.ActionLink(
      "delete", 
      "DeleteMovie", 
      "Movies", 
      new { id = Movie.Id }, 
      new AjaxOptions { HttpMethod = "POST" } 
     ) %> 
    </li> 
    <% } %> 
</ul> 

不要忘了包括jquery和如果您決定使用Ajax.ActionLink助手,則可將210個腳本添加到您的頁面。

0

最簡單的方法?事情是這樣的:

<% if(Model!=null && Model.Count>0){%> 
<ul> 
    <% foreach(var Movie in Model) { %> 
     <li> 
      <%= Movie.Id %> 
      <%= Movie.Title %> 
      <%= Movie.ReleaseDate %> 
      <% using (Html.BeginForm("EditMovie")) { %> 
       <%: Html.Hidden("Id", Movie.Id) %> 
       <input type="submit" value="edit" name="edit" /> 
       <input type="submit" value="delete" name="delete" /> 
      <% } %> 
     </li> 
    <% } %> 
</ul> 
<% } %> 

然後在後面的代碼:

public ActionResult EditMovie(int Id, string edit, string delete) 
{ 
    if (delete != null) 
    { 
     // delete 
    } 

    if (edit != null) 
    { 
     // edit 
    } 

    return View(); 
} 
0

jQuery的掛鉤處理程序會是這樣的;

$(document).ready(function(){ 
    $('input[type="button"]').on('click', function(e){ 
     // etc 
    }); 
}); 
0
You can handle form action with Jquery. 

$(document).ready(function(){ 
    $('.button-edit').on('click', function(e){ 
     $('#formMovie').attr('action','/edit/'+ someParameter) 
    }); 
    $('.button-delete').on('click', function(e){ 
     $('#formMovie').attr('action','/edit/' + someParameter) 
    }); 
}); 
0
foreach { 
... 
     <button type="button" class="btn btn-default editButton" id="[email protected]">Edit</button> 
... 
    } 

@section Scripts { 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $("editButton").click(function() { 
      var id = this.id.split("_")[0]; 
      location.href = '@Url.Action("EditMovie", new RouteValueDictionary() { { "Controller", "Movie" } })?id=' + id; 
     }); 
    }); 
    </script> 
}