我想点按一下按钮 代码如下:>
<% 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>
我有一些功能要做,但如何将这些按钮链接到这些控件?
答案 0 :(得分: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>
然后您将有两个相应的控制器操作:
[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
帮助,请不要忘记在您的网页中加入jquery.unobtrusive-ajax.js
和Ajax.ActionLink
脚本。
答案 1 :(得分: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();
}
答案 2 :(得分:0)
连接处理程序的jQuery就像是;
$(document).ready(function(){
$('input[type="button"]').on('click', function(e){
// etc
});
});
答案 3 :(得分: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)
});
});
答案 4 :(得分:0)
foreach {
...
<button type="button" class="btn btn-default editButton" id="movie_@Movie.Id">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>
}