누구든지 ActionLink 및 POST 방법을 사용하여 컨트롤러에 값을 제출하는 방법을 알려줄 수 있습니까?
버튼을 사용하고 싶지 않습니다.
jquery에 뭔가가 있다고 생각합니다.
답변
ActionLink
앵커 <a>
태그를 렌더링하기 때문에을 사용할 수 없습니다 . jQuery AJAX 게시물을
사용할 수 있습니다 .
또는 jQuery (AJAX가 아닌)를 사용하거나 사용하지 않고 양식의 제출 메서드를 호출 할 수 있습니다 .onclick
답변
ASP MVC3를 사용하는 경우 Ajax.ActionLink ()를 사용하여 “POST”로 설정할 수있는 HTTP 메서드를 지정할 수 있습니다.
답변
jQuery를 사용하여 모든 버튼에 대해 POST를 수행 할 수 있습니다. 동일한 CssClass 이름을 지정하십시오.
“return false”를 사용하십시오. onclick javascript 이벤트가 끝날 때 게시 후 서버 측 RedirectToAction을 수행하려는 경우 그렇지 않으면보기를 반환합니다.
Razor 코드
@using (Html.BeginForm())
{
@Html.HiddenFor(model => model.ID)
@Html.ActionLink("Save", "SaveAction", "MainController", null, new { @class = "saveButton", onclick = "return false;" })
}
JQuery 코드
$(document).ready(function () {
$('.saveButton').click(function () {
$(this).closest('form')[0].submit();
});
});
씨#
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveAction(SaveViewModel model)
{
// Save code here...
return RedirectToAction("Index");
//return View(model);
}
답변
@Aidos는 @CodingWithSpike가 작성한 게시물에 대한 댓글 안에 숨겨져 있기 때문에 정답을 명확히하고 싶었습니다.
@Ajax.ActionLink("Delete", "Delete", new { id = item.ApkModelId }, new AjaxOptions { HttpMethod = "POST" })
답변
다음은 기본 ASP.NET MVC 5 프로젝트에 구워진 답변으로 UI에서 스타일링 목표를 훌륭하게 달성한다고 생각합니다. 순수한 자바 스크립트를 사용하여 일부 포함 양식에 양식 제출.
@using (Html.BeginForm("Logout", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
{
<a href="javascript:document.getElementById('logoutForm').submit()">
<span>Sign out</span>
</a>
}
완전히 표시된 사용 사례는 웹 앱의 탐색 모음에있는 로그 아웃 드롭 다운입니다.
@using (Html.BeginForm("Logout", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
{
@Html.AntiForgeryToken()
<div class="dropdown">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="ma-nav-text ma-account-name">@User.Identity.Name</span>
<i class="material-icons md-36 text-inverse">person</i>
</button>
<ul class="dropdown-menu dropdown-menu-right ma-dropdown-tray">
<li>
<a href="javascript:document.getElementById('logoutForm').submit()">
<i class="material-icons">system_update_alt</i>
<span>Sign out</span>
</a>
</li>
</ul>
</div>
}
답변
ActionLink는 게시물을 실행하지 않습니다. 항상 GET 요청을 트리거합니다.
답변
Call the Action 링크를 사용하십시오.
<%= Html.ActionLink("Click Here" , "ActionName","ContorllerName" )%>
양식 값을 제출하려면 다음을 사용하십시오.
<% using (Html.BeginForm("CustomerSearchResults", "Customer"))
{ %>
<input type="text" id="Name" />
<input type="submit" class="dASButton" value="Submit" />
<% } %>
고객 컨트롤러 및 CustomerSearchResults 작업에 데이터를 제출합니다.