多分それは簡単な質問でしたが、2日私はそれに取り組んだ。 それは別のビューに私のための仕事だったが、今私が欲しい が最初の変更により、第2のドロップダウンリストを表示しますが動作しない私のために動作しませんどのように私はクロムを使用
が を表示し、デバッグモードを使用することを検査することを解決することができ、これはコントロール
のコードでのブレークポイントは、デバッガは@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script>
$(document).ready(function() {
$(document).on("change","#ProvinceId",function() {
var pid = this.value;
$.ajax({
type: "POST",
url:'@Url.Action("ReturnCity", "Account")',
dataType:"json",
data:{provinceId:pid},
contentType:'application/json; charset=utf-8',
success: function(data) {
$('#CityId').empty();
$.each(data,
function (index, item) {
$('#CityId').append($('<option></option>').text(item.Name).val(item.Id));
});
}, error: function (data)
{ alert(data) }
});
});
});
</script>
}
を制御するために行かなかったし、私のコントロールが戻り都市の
public ActionResult Register()
{
//return PartialView("_Login");
ViewBag.ProvinceId = new SelectList(_db.Provinces, "Id", "Name");
ViewBag.CityId = new SelectList(_db.Cities, "Id", "Name",_db.Cities.Where(x => x.ProvinceId == 1));
return View("");
}
//
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email,CountryId = 55,ProvinceId = model.ProvinceId,CityId = model.CityId};
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
MigrateShoppingCart(model.Email);
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
// For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
// Send an email with this link
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(user.Id, "" + callbackUrl + "\">link</a>");
// Uncomment to debug locally
// TempData["ViewBagLink"] = callbackUrl;
ViewBag.Message = "";
return View("Info");
//return RedirectToAction("Index", "Home");
}
AddErrors(result);
}
// If we got this far, something failed, redisplay form
return View(model);
}
です私はショーのための2つの関連するドロップダウンリストをこれを使用するビューの
[HttpPost]
public JsonResult ReturnCity(int provinceId)
{
_db.Configuration.ProxyCreationEnabled = false;
var data = _db.Cities.Where(x => x.ProvinceId == provinceId);
return Json(data.ToList(), JsonRequestBehavior.AllowGet);
}
<div class="form-group">
@Html.LabelFor(model => model.ProvinceId, "استان", htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
@*@Html.DropDownListFor(model=>model.ProvinceId, (SelectList)ViewBag.ProvinceId, "Select", new { htmlAttributes = new { @class = "form-control" }})*@
@Html.DropDownList("ProvinceId", "Select")
@Html.ValidationMessageFor(model => model.ProvinceId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CityId,"City", htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
@*@Html.DropDownListFor(model => model.CityId, (SelectList)ViewBag.CityId, "Select", new { htmlAttributes = new { @class = "form-control" } })*@
@Html.DropDownList("CityId", "Select")
@Html.ValidationMessageFor(model => model.CityId, "", new { @class = "text-danger" })
</div>
</div>
あなたのJavaScriptコンソールで受信しているいずれかのエラーが発生したあなたの質問を更新してください。 – Soviut
私は最初のドロップダウンリストを変更したときに私はドロップダウンリスト2で何も変更していない、インスペクタのエラーなしで – sunny
あなたはスクリプトの最後に余分な '}'を持っています – Shyju