私はMVCのコントローラに必要なすべてのデータを渡すのに苦労しています。コードは以下の通りである:コントローラに値を渡す
<td><a [email protected]("AddCourseToStudentPlan", "Users", new {
courseID = c.CourseId, userID = user.UserId, semNum = num}) title="Add Course
to Semester" >"Here"</a></td>
(現在numをもちろん動作しませんvar num = 1;
、と定義される。)
もちろんIDとユーザIDの罰金を渡しています。これらの値は基本的にViewBag
から来ています。
しかし、semNumは全く違うものに依存しています。
<ul class="nav nav-tabs" id="Semtabs">
@{ var year = plan.CatalogYear; }
<li class="active"><a href="#SEM1" onclick="StoreNum(1)" data-toggle="tab" aria-expanded="true">Fall @year</a></li>
@{ year += 1; }
<li class=""><a href="#SEM2" data-toggle="tab" aria-expanded="true">Spring @year</a></li>
<li class=""><a href="#SEM3" data-toggle="tab" aria-expanded="true">Fall 2014</a></li>
<li class=""><a href="#SEM4" data-toggle="tab" aria-expanded="true">Spring 2015</a></li>
<li class=""><a href="#SEM5" data-toggle="tab" aria-expanded="true">Fall 2015</a></li>
<li class=""><a href="#SEM6" data-toggle="tab" aria-expanded="true">Spring 2016</a></li>
<li class=""><a href="#SEM7" data-toggle="tab" aria-expanded="true">Fall 2016</a></li>
...
意図した出力は、タブのいずれかをユーザーがクリックすると、彼らは追加したコースのリストを参照し、できているときということですコードの前のコードブロックのリンクをクリックして、このタブにコースを追加します。したがって、タブをクリックすると@Url.Action()
メソッドのnum
の値を変更する必要があります。しかし、もちろんC#はサーバー側であるため、これを行うことはできません。
問題は、ページが読み込まれた後、どのように変数semNum(クライアント側で決定される)を@Url.Action()
メソッドに渡すことができるかです。
あなたは、ユーザーがリンクをクリックしたときにサーバーに最終 'num'値を掲示し、あなたの質問は私に本当に明確ではない – silkfire
、あなたのコントローラに応じてそのアクションにリダイレクトすることができます。しかし、問題がUrl.Actionにある場合は、それを使用してスキップすることができます。関数内でJavaスクリプト関数を使用するだけで、番号を見つけてリダイレクトを行う必要があります。 –