助けが必要です。JavaScript と Knockout を使用して ASP.NET MVC4 を使用して小さなアプリを作成しましたが、javascript から MVC コントローラーに、またはその逆にデータを送信できません。たとえば、JS の部分は次のようになります。
JavaScript
self.Employer = ko.observable();
self.AboutEmployer = function (id) {
$.ajax({
Url.Action("GetEmployer", "Home")
cache: false,
type: 'GET',
data: "{id:" + id + "}",
contentType: 'application/json; charset=utf-8',
dataType: "json",
success: function (data) {
self.Employer(data);
}
}).fail(
function () {
alert("Fail");
});
};
ASP.NET MVC ホーム コントローラーでは、ID で雇用主を取得し、Json として返します。
C#
public JsonResult GetEmployer(int id)
{
var employer = unit.Repository<Employer>().GetByID(id);
return Json(employer, JsonRequestBehavior.AllowGet);
}
My View は別の Controller (Home/KnockOutView) を返します。私のビューも別のオブジェクトを取得し、受信したものに応じて、外観が異なります。
HTML
...
<b>About Company: </b><a href="#" data-bind="click: $root.AboutEmployer.bind($data, Vacancy().EmployerID)">
<span data-bind=" text: Vacancy().Employer"></span></a>
<div data-bind="if: Vacancy">
<div id="VacancyDescription"><span data-bind="text:DescriptionShort"></span>
</div>
</div>
<div data-bind="if: Employer">
<div data-bind="text: Employer().EmployerDescription"></div>
</div>
すべてがうまく機能し、JS で Vacancy および Employer オブジェクトを受け取り、Knockout を使用して HTML で表示しますが、私の URL は常に同じです!!! しかし、Vacancy または Employer を取得したときに、常に URL を変更したいと考えています。
たとえば、メソッド GetEmployer を使用して Employer を取得する場合、URL は次のようになります。 ~/Home/GetEmployer?id=3 URL のコードのこの文字列を変更
すると、変更さUrl.Action("GetEmployer", "Home")
れurl: window.location.href = "/home/GetEmployer?id=" + id
ますが、Controller は Json オブジェクトを返し、 Json形式でウィンドウに表示します。URL を変更し、URL から Controller の情報を取得するのを手伝ってください。ありがとう。