2017-08-31 22 views
0

現在、ASP.NET MVCアプリケーションを構築していますが、ボタンのonclick関数がフォームタグ内で動作しない理由が不思議でした。私はこのボタンをtype = "button"にし、 "submit"にしないでください。また、入力のいずれも、どのモデル属性にもバインドされていません。このアプリケーションの目的は、お客様のモックアップテンプレートとして役立つことです。 onclickアクションのボタンは、ビューを返すだけで何もしないで作成したコントローラアクションを呼び出します。私は他のビューで同じ設定をしていますが、ボタンは期待どおりに機能しますが、何らかの理由でこれらのボタンは何もしません。私は、他のビューからコードをコピーして貼り付けることさえできます。ここで何が起こっているのか分かりません。どんな助けでも大歓迎です。ありがとう!ここではいくつかのサンプルコードです:HTML <button> onclickが内部で動作しない<form>タグ

CSHTML:

<div class="row"> 
     <div class="col-sm-offset-1 col-sm-10 col-lg-offset-1 col-lg-10"> 
      <h3>WORK LOCATION INFO</h3> 
      <hr /> 
      <form> 
       <div class="form-group"> 
        <div class="row"> 
         <div class="col-md-3"> 
          <label class="input-label" for="locationType">This is a:</label> 
          <select class="form-control" id="locationType"> 
           <option></option> 
           <option>All location types</option> 
          </select> 
         </div> 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="row"> 
         <div class="col-md-4"> 
          <label class="input-label" for="campus">Campus <small><i style="color:red" class="fa fa-asterisk" aria-hidden="true"></i></small></label> 
          <select class="form-control" id="campus"> 
           <option></option> 
           <option>All campuses</option> 
          </select> 
         </div> 
         <div class="col-md-4"> 
          <label class="input-label" for="location">Location <small><i style="color:red" class="fa fa-asterisk" aria-hidden="true"></i></small></label> 
          <select class="form-control" id="location"> 
           <option></option> 
           <option>All Locations</option> 
          </select> 
         </div> 
        </div> 
       </div> 
       <div class="row"> 
        <div class="col-md-1"> 
         <button type="button" class="btn btn-default button-blue" onclick="location.href='@Url.Action("WorkPosition", "RosterAdmin")'"><strong>GO BACK</strong></button> 
        </div> 
        <div class="col-md-2"> 
         <button type="button" class="btn btn-default button-green" onclick="location.href='@Url.Action("CreateProfile", "RosterAdmin")'"><strong>CONTINUE</strong></button> 
        </div> 
       </div> 
      </form> 
     </div> 
    </div> 

CONTROLLER:

public class RosterAdminController : Controller 
{ 
    // GET: RosterAdmin 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult WorkPosition() 
    { 
     return View(); 
    } 

    public ActionResult WorkLocation() 
    { 
     return View(); 
    } 

    public ActionResult CreateProfile() 
    { 
     return View(); 
    } 

} 
+0

asp.net mvc default routeを変更しましたか? – mxmissile

+0

いいえ、私はRouteConfigだけを残しました。私はMVCで十分に精通していないので、それをやめさせてください。 –

+0

URLは正しく生成されていますか? URLに直接アクセスするとどうなりますか? – mxmissile

答えて

1

それはlocationは、スクリプト内のどこか他の何かに設定されていることが表示されます。このような問題を避けるには、一般的にwindow.locationを使用する方が安全です。代わりにwindow.location.hrefを使用するようにボタンを変更すると、うまくいく可能性があります。

この問題をブラウザでデバッグして、locationが変更されているかどうかを判断することができます。

参照:Is there any difference with using only location vs using window.location across browsers

関連する問題