私は、ユーザーがチャレンジを作成して互いに競争できるようにする「チャレンジエンジン」Webアプリケーションに取り組んでいます。私はMVC4C#、かみそりの構文を使用しています。
ユーザーがチャレンジを作成するか、既に作成したチャレンジの詳細を編集できるページを作成しようとしています。これを機能させたいのは、ユーザーが所有する課題のドロップダウンメニュー、送信ボタン、およびその下の2つのテキストフィールドを用意することです。ドロップダウンからチャレンジを選択すると、2つのテキストフィールドにチャレンジ名とチャレンジの説明が表示されます。これを実現する方法はわかりませんが、コントローラーに配置する必要のある追加のコードを何らかの方法で呼び出す必要があると思います(ただし、そうではないかもしれません)。JavaScript、jQuery、AJAXも必要になる場合がありますが、これらのテクノロジーについての私の理解はまだやや不安定です。誰かが助けてくれますか、それとも私を正しい方向に向けることができますか?私は過去数日間これを広範囲にグーグルで検索し、スタックオーバーフローを検索しましたが、できませんでした 私がやろうとしていることをかなりやっている人を見つけてください。以下は私がこれまでに持っている関連コードです。
チャレンジモデル:
public class ChallengeModel
{
public int ChallengeId { get; set; }
public String Name { get; set; }
public String Description { get; set; }
}
チャレンジコントローラー:
public class ChallengeController
public ActionResult Index()
//Note: UserService and Challenge Service are part of the service layer;
//They simply encapsulate the methods in the various DAOs.
{
ViewBag.CurrentUserName = WebSecurity.CurrentUserName;
ViewBag.CurrentUser = UserService.GetUserByName(ViewBag.CurrentUserName);
ViewBag.OwnedChallenges =
ChallengeService.GetActiveChallengesByParticipant(CurrentUser);
return View();
}
チャレンジビュー(index.cshtml):
<div class="challengeOwner">
<em>Challenges you own:</em>
<select id="selectOwnedChallenges">
<option>Create new challenge...</option>
@foreach (ChallengeModel Challenge in ViewBag.OwnedChallenges)
{
<option id="@Challenge.ChallengeId"
value="@Challenge.ChallengeId"
onclick=" [[[INSERT CODE HERE THAT WILL POPULATE TEXT FIELDS
WITH CHALLENGE NAME AND DESCRIPTION]]] ">@Challenge.Name</option>
}
</select>
<input id="ChallengeName" type="text" name="Name"
value="@selectedChallenge.Name"/><br />
<input id="ChallengeDescription" type="text" name="Description"
value="@selectedChallenge.Description"/>
<input id="updateChallenge" type="button" value="Submit" />
</div>
ご覧のとおり、ドロップダウンで選択されたチャレンジを表すために変数@selectedChallengeを使用すると思いました。設定方法がわからないので、どうしたらいいのかわからないのではないかと思いますが、とりあえずそのままにしておいたほうがいいと思います。どんな助けでも大歓迎です。前もって感謝します!