インデックス ビューの特定のタブに移動するために、1 つのビューで以下を使用しました...
button type="button" class="btn blue" onclick="location.href='Index/#rooms'"><i class="m-icon-swapleft m-icon-white"></i> Back to Room List</button>
URL は次のようになります.....ReferralTarget/Index/#rooms
部屋はインデックス ビューのタブの 1 つです。
別のビューで同じコードを使用すると、エラー 400 - Bad request が表示され、URL は次のようになります... /ReferralTarget/EditRoom/Index/#rooms
@model.Project.Web.Models.ReferralTargetRoomModel
@{
ViewBag.Title = "EditRoom";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<!-- BEGIN PAGE CONTENT-->
<div class="row-fluid">
<div class="span12">
<!-- BEGIN SAMPLE FORM PORTLET-->
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption"><i class="icon-hospital"></i>Edit Room Details</div>
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
@using (Html.BeginForm("EditRoom", "ReferralTarget", FormMethod.Post, new { @class="form-horizontal" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.ID)
@Html.HiddenFor(model => model.ReferralTargetId)
<div class="control-group">
<label class="control-label">@Html.LabelFor(model => model.County)</label>
<div class="controls">
@Html.DropDownListFor(model => model.County.ID, new SelectList(Model.Counties, "ID", "Name"), new {@id="counties" })
@Html.ValidationMessageFor(model => model.County)
</div>
<div class="control-group">
<label class="control-label">@Html.LabelFor(model => model.Fax)</label>
<div class="controls">
@Html.EditorFor(model => model.Fax)
@Html.ValidationMessageFor(model => model.Fax)
</div>
</div>
<div class="control-group">
<label class="control-label">@Html.LabelFor(model => model.Email)</label>
<div class="controls">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>
</div>
<div class="control-group">
<label class="control-label">@Html.LabelFor(model => model.Website)</label>
<div class="controls">
@Html.EditorFor(model => model.Website)
@Html.ValidationMessageFor(model => model.Website)
</div>
</div>
<div class="control-group">
<label class="control-label">@Html.DisplayNameFor(model => model.Users)</label>
<div class="controls">
@Html.ListBoxFor(m => m.SelectedUsers, new MultiSelectList(Model.Users,"ID","Name",Model.SelectedUsers)
, new { @id = "users" , @multiple = true})
</div>
</div>
<div class="form-actions">
<input type="submit" value="Save Changes" class="btn green">
<button type="button" class="btn blue" onclick="location.href='Index/#rooms'"><i class="m-icon-swapleft m-icon-white"></i> Back to Room List</button>
</div>
}
<!-- END FORM-->
</div>
</div>
<!-- END SAMPLE FORM PORTLET-->
</div>
<!-- END PAGE CONTENT-->
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/jquery.multi-select.js")
}
@section Styles {
<link href="~/assets/css/multi-select.css" rel="stylesheet" />
}
<script type="text/javascript">
$(document).ready(function () {
$(document).ready(function () {
$('#users').multiSelect({
selectableHeader: "<div class='custom-header'>Availible Users</div>",
selectionHeader: "<div class='custom-header'>Selected Users</div>",
});
});
$(function () {
$("#counties").change(function () {
var filterVal = $("#counties").val();
getHospitalsByCounty(filterVal);
})
});
function getHospitalsByCounty(value) {
$.ajax({
url: 'GetHospitalsInCounty?id=' + value,
contentType: "application/json; charset=utf-8",
success: function (response) {
var data = response;
var items = []
$('#hospitals').empty();
$.each(data, function (index, value) {
$('#hospitals').append($('<option></option>').val(value.ID).html(value.Name));
});
}
});
};
});
</script>
URL を変更してテキストを削除する方法はありますか (この場合は「部屋の編集」)..??
コントローラーに関連している場合、2 つのビューの唯一の違いは、EditView Get ActionResult が (string id) を使用することですが、AddView は使用しません。
ありがとう