[asp.net-mvc] ASP.NET MVC ActionLink 및 게시 방법

누구든지 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 작업에 데이터를 제출합니다.