3
I’m trying to pass data from an HTML table in my view to my Controller.
The data in this table are added dynamically. A Modal Bootstrap is opened, where the user informs some data, when clicked the button Ok
, data is added to table via Javascript.
Until then, everything is working.
After all the data informed, I need to pass these to my controller to insert them in my BD.
There’s the problem!
I’ve tried many ways, but I haven’t got anything yet.
This is the code of my View that contains my table:
@model prjArqBuild.entidade_endereco
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#endereco">
Endereços
</a>
</h4>
</div>
<div id="endereco" class="panel-collapse collapse">
<div class="panel-body">
<table class="table" id="tabEndereco">
<thead>
<tr>
<th>
Endereco
</th>
<th>
Numero
</th>
<th>
Complemento
</th>
<th>
Bairro
</th>
<th>
Cidade
</th>
<th>
UF
</th>
<th>
CEP
</th>
</tr>
</thead>
</table>
</div>
<div class="panel-footer">
<p class="panel-title">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#ModalEndereco">
Adicionar Endereço
</button>
<!-- Modal -->
<div class="modal fade" id="ModalEndereco" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Cadastro de Endereço</h4>
</div>
<div class="modal-body">
<fieldset id="infoEndereco">
<div class="row">
<div class="col-md-8">
@Html.EditorFor(model => model.een_endereco, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "Endereço" } })
@Html.ValidationMessageFor(model => model.een_endereco, "", new { @class = "text-danger" })
</div>
<div class="col-md-4">
@Html.EditorFor(model => model.een_numero, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "Numero" } })
@Html.ValidationMessageFor(model => model.een_numero, "", new { @class = "text-danger" })
</div>
</div>
<br />
<div class="row">
<div class="col-md-12">
@Html.EditorFor(model => model.een_comple, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "Complemento" } })
@Html.ValidationMessageFor(model => model.een_comple, "", new { @class = "text-danger" })
</div>
</div>
<br />
<div class="row">
<div class="col-md-6">
@Html.EditorFor(model => model.een_bairro, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "Bairro" } })
@Html.ValidationMessageFor(model => model.een_bairro, "", new { @class = "text-danger" })
</div>
<div class="col-md-6">
@Html.EditorFor(model => model.een_cidade, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "Cidade" } })
@Html.ValidationMessageFor(model => model.een_cidade, "", new { @class = "text-danger" })
</div>
</div>
<br />
<div class="row">
<div class="col-md-6">
@Html.EditorFor(model => model.een_uf, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "Estado" } })
@Html.ValidationMessageFor(model => model.een_uf, "", new { @class = "text-danger" })
</div>
<div class="col-md-6">
@Html.EditorFor(model => model.een_cep, new { htmlAttributes = new { @class = "form-control input-sm", placeholder = "CEP" } })
@Html.ValidationMessageFor(model => model.een_cep, "", new { @class = "text-danger" })
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
<button id="addEndereco" type="button" OnClick="gravarDetalheEnd();" class="btn btn-primary">Salvar</button>
</div>
</div>
</div>
</div>
</p>
</div>
</div>
</div>
</div>
This is my Javascript function that puts the data in the table dynamically:
function gravarDetalheEnd() {
$('#tabEndereco tr:last').after('<tr><td>' + $('#een_endereco').val() + '</td><td>' + $('#een_numero').val() + '</td>' +
'<td>' + $('#een_comple').val() + '</td>' + '<td>' + $('#een_bairro').val() + '</td>'
+ '<td>' + $('#een_cidade').val() + '</td>' + '<td>' + $('#een_uf').val() + '</td>'
+ '<td>' + $('#een_cep').val() + '</td></tr>');
}
This is my way in Controller where I need to receive the data:
public void AddEndereco(entidade_endereco entEnd)
{
db.entidade_endereco.Add(entEnd);
db.SaveChanges();
}
Note that I need to receive them as entidade_endereco
I tried to use several functions and 'AJAX' to pass it to the Controller, but without any answer.
Does anyone have any idea?
You want to send using Ajax or a request
POST
conventional?– Richard Dias