programing

MVC 컨트롤러 및 액션 메서드를 호출하는 HTML 버튼

new-time 2020. 5. 15. 22:43
반응형

MVC 컨트롤러 및 액션 메서드를 호출하는 HTML 버튼


나는 이것이 옳지 않다는 것을 알고 있지만, 설명을 위해 다음과 같은 것을하고 싶다 :

<%= Html.Button("Action", "Controller") %>

내 목표는 내 MVC 컨트롤러의 액션 메소드를 호출하는 HTML 버튼을 만드는 것입니다.


조치를 게시하지 않으면 양식을 전혀 사용할 필요가 없습니다. 입력 버튼 (제출하지 않음)이 트릭을 수행합니다.

  <input type="button"
         value="Go Somewhere Else"
         onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />

면도기 구문은 다음과 같습니다.

<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />

<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />

type = "button"은

페이지를 제출하지 못하게합니다. 대신 작업을 수행합니다.


Url.Action을 사용하여 컨트롤러 작업에 대한 URL 생성을 지정할 수 있으므로 다음 중 하나를 사용할 수 있습니다.

<form method="post" action="<%: Url.Action("About", "Home") %>">
   <input type="submit" value="Click me to go to /Home/About" />
</form>

또는:

<form action="#">
  <input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
  <input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>

이 시도:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)

이것은 당신을 위해 작동합니다.


위의 몇 가지 답변을 바탕으로 다음을 수행 할 수 있습니다.

<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />

이것은 Razor의 특정 컨트롤러 및 작업 방법에 양식을 제출하는 방법입니다.

 <input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />

HTML

<button>

요소는이를 포함하는 양식으로 만 포스트 백 할 수 있습니다.따라서 조치에 POST하는 양식을 작성한 다음

<button>

또는

<input type="submit" />

양식 을 넣어야합니다 .


"unterminated string constant"로 오류가 발생하는 경우 다음 면도기 구문을 사용하십시오.

<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />

그래서 Razor를 사용하고 있지만 둘 중 하나를 사용하여 작동합니다. 기본적으로 링크에 버튼을 배치하고 있습니다.

<a href="Controller/ActionMethod">
    <input type="button" value="Click Me" />
</a>


컨트롤러에서 작업을 구현할 때

return View("Index");

또는

return RedirectToAction("Index");

여기서 Index.cshtml (또는 작업을 생성하는 페이지) 페이지가 이미 정의되어 있습니다. 그렇지 않으면 "보기 또는 마스터를 찾을 수 없습니다 ..."오류가 발생했을 수 있습니다.출처 :

https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/


onclick 방법에도 불구하고 다음과 같이 formaction을 사용할 수도 있습니다.

<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>

이 예제를 사용하는 것이 좋습니다

 

<a href="@Url.Action("Register","Account", new {id=Item.id })"
class="btn btn-primary btn-lg">Register</a>

 


홈 페이지 ( "/ Home / Index")에 있고 Admin controller의 Index 액션을 호출하려면 다음을 수행하십시오.

<li><a href="/Admin/Index">Admin</a></li>

좋아,

기본적으로 액션을 버튼에 전달하고 클릭이 발생할 때 호출해야하며, from 안에있을 필요가 없으며 버튼 을 클릭 할 때 HTML

onclick

on

버튼

사용 하여 트리거 할 수 있습니다 ...

<button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>

이 예제를 사용하는 것이 좋습니다

.다음을 사용하여 호출 조치 및 컨트롤러

ActionLink

:

@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})

이 예제를 사용하십시오.

<button name="nameButton" id="idButton" title="your title" class="btn btn-secondary" onclick="location.href='@Url.Action( "Index","Controller" new {  id = Item.id })';return false;">valueButton</button>

참고 URL :

https://stackoverflow.com/questions/2503923/html-button-calling-an-mvc-controller-and-action-method

반응형