Diskuze: U nulového odkazu nelze provést vazbu za běhu.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Michal Štěpánek:4.3.2019 7:59
V první řadě používej pro vkládání kódu tlačítko "</>", protože takthle je to hrozně nepřehledné a v druhé řadě se zaměř na to, abys zjistila, která data se ti to vlastně "ztratí", pak bude jednodušší zjistit proč...
Dobře, tak znovu... Ztratí se mi data z původního obsahu stránky, tedy z
této části, u té se mi zobrazuje ta chyba:
<dt class="col-xl-3 col-md-3 col-sm-3">kód</dt>
<dd class="col-xl-3 col-md-4 col-sm-4">@Model.Code</dd>
<dt class="col-xl-3 col-md-3 col-sm-3">Segment</dt>
<dd class="col-xl-3 col-md-4 col-sm-4">@Model.Segment</dd>
<dt class="col-xl-3 col-md-3 col-sm-3">Název</dt>
<dd class="col-xl-3 col-md-4 col-sm-4">@Model.Name</dd>
tím se ztratí i z prvního modalu... i když se všude dál zobrazují... ve
VS se to tváří že @Model je null, ale netuším proč...?
Znovu celý kód
@using (Html.BeginForm("Edit", "AdminProduct", FormMethod.Post))
{
<section class="container-fluid">
<div class="row">
<h2><span data-feather="star"></span> Detail Produktu</h2><br />
</div>
<dl class="row mt-2">
<dt class="col-xl-3 col-md-3 col-sm-3">kód</dt>
<dd class="col-xl-3 col-md-4 col-sm-4">@Model.Code</dd>
<dt class="col-xl-3 col-md-3 col-sm-3">Segment</dt>
<dd class="col-xl-3 col-md-4 col-sm-4">@Model.Segment</dd>
<dt class="col-xl-3 col-md-3 col-sm-3">Název</dt>
<dd class="col-xl-3 col-md-4 col-sm-4">@Model.Name</dd>
</dl>
<div class="row">
<div class="col-9 col-sm-9 text-right" style="bottom:15px;">
<button type="button" class="btn btn-primary" onclick="UpdateProductDetail()">Upravit</button>
</div>
</div>
<div class="modal fade" id="modalEditProduct" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered " role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Úprava produktu</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group row">
<label for="Segment" class="col-sm-2 col-form-label">Segment</label>
<div class="col-sm-4">
<textarea class="form-control" id="Segment" rows="2" cols="4">@Model.Segment</textarea>
</div>
<label for="Name" class="col-sm-2 col-form-label">Název</label>
<div class="col-sm-4">
<textarea class="form-control" id="Name" rows="2" cols="4">@Model.Name</textarea>
</div>
</div>
<div class="modal-footer">
<div class="col-8 text-right">
<button type="button" class="btn" onclick="GetValues()">Kopírovat</button>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalGetValues" tabindex="-1" role="dialog" aria-labelledby="#exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-lg vertical-align-center" role="document">
<div class="modal-content " style="width: 810px; ">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Vybrat produkt ke zkopírování</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body modal-body-long">
<div class="form-group">
<div class="col-sm-12">
<table id="grid-data-product" class="table table-sm table-hover" style="width:100%;">
<thead>
<tr>
<th>ID</th>
<th>Název</th>
<th></th>
</tr>
</thead>
</table>
</div>
</div>
</div>
<div class="modal-footer">
<div class="col-12">
<button type="button" class="btn" data-dismiss="modal">Zavřít</button>
</div>
</div>
</div>
</div>
</div>
</section>
<script>
function GetValues() {
$("#modalGetValues").modal('show');
var columndef = [
{ "data": "ID" },
{ "data": "Name" },
{
'data': "ID",
'render': function (ID) {
return '<button id="' + ID + '" onclick="LoadValues(this.id)" class="btn-sm btn-primary">Kopírovat</a>'
}
}
];
var defaultsort = [[1, "asc"]];
var primarykeycolumn = 'ID';
table = $('#grid-data-product').DataTable({
pageLength: 10,
language: {
"url": "//cdn.datatables.net/plug-ins/1.10.16/i18n/Czech.json"
},
ajax: {
url: '/api/admin/GetDialog',
dataSrc: 'data',
xhrFields: {
withCredentials: true
}
},
columns: columndef,
order: defaultsort,
processing: true,
serverSide: true,
ordering: true,
select: true,
destroy: true,
searching: true,
paging: true,
pageLength: @Model.GridSize,
rowId: primarykeycolumn,
select: {
style: 'multi',
selector: 'td:first-child'
},
fixedHeader: {
header: true,
headerOffset: 82
}
});
}
function LoadValues(id) {
$.ajax({
dataType: "json",
method: 'GET',
url: '/api/admin/GetValuesFromProduct/' + id,
xhrFields: {
withCredentials: true
}
})
.done(function (data) {
$("#modalGetValues").modal('hide');
$("#Segment").val(data.Segment);
});
}
</script>
}
Ilja Židkov:4.3.2019 12:59
U nulového odkazu nelze provést vazbu za běhu.
To je vlastně NullReferenceException? Čili @Model je null.
Zkoušela jsem udělat cache původního obsahu...
Jako první bych "projel" Edit akci v AdminControlleru. Nastav breakpoint na předpis akce a sleduj, co ti to dělá s modelem po odeslání formuláře.
Zobrazeno 4 zpráv z 4.