2013-09-09 2 views
-1

Я использовал следующие в одном окне, чтобы перейти к конкретной вкладке на индексный просмотр ...изменяющего Url с OnClick тегом в БТН

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/Главная/# комната

номер является одной из вкладок на индексном ..

Когда я использую один и тот же код в другой точке зрения, я получаю ошибку 400 - Bad запроса и URL-адрес выглядит как .../ReferralTarget/EditRoom/Index/# номера

@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-адрес для удаления текста, в данном случае «Редактировать комнату» .. ??

Если это связано обратно к контроллеру, разница только в двух видах является EditView Получить ActionResult использует (идентификатор строки), где AddView не ....

Благодаря

+1

Я не понимаю, что вы хотите? Этот вопрос запутан? – Liam

+0

У меня три вида - Индекс - Добавить - EditRoom. В индексе есть вкладки, одна из этих вкладок называется «Номера», а в представлении «Добавление» я нажимаю «Назад в комнаты», чтобы вернуться к представлению «Индекс» с отображенной вкладкой комнат (это работает) .... Когда я нажимаю то же самое btn в представлении EditRoom У меня появляется ошибка 400-плохой запрос и EditRoom/Index/# номера дисплея Url, когда он должен читать Index/# rooms ..... есть ли способ удалить EditRoom в onclick ??? ? – mkell

ответ

0

От ваш код, я думаю, вы непреднамеренно добавили не существующий метод действий.

EditRoom действие, которое вы хотите, или Index действие, которое вы хотите.

Я предполагаю, что контроллер ReferralTarget.

Так оно и должно быть ReferralTarget/EditRoom/#rooms

ОБНОВЛЕНО

Вы можете изменить эту строку.

onclick="location.href='Index/#rooms'" 

Для

onclick="location.href='@Url.Action("Index","ReferralTarget")/#rooms'" 
+0

Нет, я хочу вернуться в индекс ActionResult .... Контроллер ReferralTarget ....... он должен читать ReferralTarget/Index/# rooms – mkell

+0

@mkell Можете ли вы показать код просмотра для редактирования? это поможет узнать, что нужно изменить. – scartag

+0

Любая конкретная деталь, она слишком длинная для комментария в этой форме ... первая секция .. @ model PrejectName.Web.Models.ReferralTargetRoomModel @ {ViewBag.Title = "EditRoom"; Layout = "~/Views/Shared/_Layout.cshtml";} @using (Html.BeginForm()) { @ Html.AntiForgeryToken() @ Html.ValidationSummary (истина)

ReferralTargetRoomModel @ Html.HiddenFor (model => model.ID) @ Html.HiddenFor (model => model.ReferralTargetId), а затем просто ищет информацию для текстовых полей ..... затем сохранить тип ввода sumit и код btn, как и раньше. .. понятно? – mkell