MVC 3 Razor pass webgrid Reihe von Daten zum controller mit Hilfe von actionlink
Habe ich ein webgrid mit einem actionlink, die ich verwenden möchten, um die Bearbeitung der ausgewählten Zeile in eine neue Ansicht. Ich weiß, dass ich kann verwenden einen actionlink mit der Lieferung einer Auseinandersetzung zu meinem actionresult Methode, aber ich weiß nicht, wie das passieren der webgrid ist Zeile Daten auf meinem controller abgesehen von der Verwendung actionlink.
@{
ViewBag.Title = "Index";
}
<h2>
Index</h2>
<p>
@Html.ActionLink("Create New User", "CreateUser")
</p>
<div class="webgrid-wrapper">
@model IEnumerable<UserManager.Models.vw_UserManager_Model_Add_Users>
@{
ViewBag.Title = "Jobs";
WebGrid grid = new WebGrid(Model, canPage: true, canSort: true, rowsPerPage: 15, selectionFieldName: "selectedRow", fieldNamePrefix: "gridItem");
}
@grid.GetHtml(
fillEmptyRows: true,
tableStyle: "webgrid",
alternatingRowStyle: "webgrid-alternating-row",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
selectedRowStyle: "webgrid-selected-row",
rowStyle: "webgrid-row-style",
mode: WebGridPagerModes.All,
columns: new[] {
//grid.Column("ApplicationId"),
//grid.Column("salutation"),
//grid.Column("PasswordSalt"),
grid.Column("FirstName"),
//grid.Column("LoweredEmail"),
//grid.Column("PasswordQuestion"),
//grid.Column("PasswordAnswer"),
//grid.Column("PasswordFormat"),
grid.Column("LastName"),
grid.Column("Password"),
grid.Column("isactive"),
//grid.Column("IsLockedOut"),
grid.Column("email"),
grid.Column("module_name"),
//grid.Column("LastLoginDate"),
//grid.Column("LastPasswordChangedDate"),
//grid.Column("LastLockoutDate"),
//grid.Column("FailedPasswordAttemptCount"),
//grid.Column("FailedPasswordAttemptWindowStart"),
//grid.Column("FailedPasswordAnswerAttemptCount"),
//grid.Column("FailedPasswordAnswerAttemptWindowStart"),
//Rest of grid columns, seen previously
@*grid.Column(
"",
header: "Actions",
format: @<text>
@Html.ActionLink("Edit", "Edit", new { id = item.email })
</text>
) ,
grid.Column(
"",
header: "Actions",
format: @<text>
@Html.ActionLink("Delete", "Delete", new { id = item.email })
</text>
) *@
@* grid.Column(
header:"",
format:@<text><div id="btnSelectedRow">
"@item.GetSelectLink("Edit")</div></text>
),*@
grid.Column(
header:"",
format:@<text><div id="btnSelectedRow">
"@Html.ActionLink("Edit record",
"EditUser",
"UserManager",
new {selectedRow = grid.SelectedRow },
null
)</div></text>
)
})
@if (grid.HasSelection)
{
var record = grid.SelectedRow;
@*@RenderPage("~/Views/UserManager/EditUser.cshtml", new { record = grid.SelectedRow })*@
}
</div>
<script type="text/javascript">
$(document).ready(function () {
function jQueryUIStyling() {
$('input:button, input:submit').button();
//Style tables.
$('.webgrid-wrapper').addClass('ui-grid ui-widget ui-widget-content ui-corner-all');
$('.webgrid-title').addClass('ui-grid-header ui-widget-header ui-corner-top');
jQueryTableStyling();
}
//
//Style tables using jQuery UI theme. This function is
//split out separately so that it can be part of the AJAX
//callback of the WebGrid WebHelper in ASP.NET MVC.
//
function jQueryTableStyling() {
$('.webgrid').addClass('ui-grid-content ui-widget-content');
$('.webgrid-header').addClass('ui-state-default');
$('.webgrid-footer').addClass('ui-grid-footer ui-widget-header ui-corner-bottom ui-helper-clearfix');
}
});
</script>
Mein controller
public ActionResult EditUser(System.Web.Helpers.WebGrid record)
{
record.ToString();
return View();
}
Zusammenfassung
Gewusst wie: übergeben Sie die Zeile Daten über ActionLink von einer Ansicht zu einer anderen über ActionResult Methode.
Nicht jeder kennt die Lösung dafür?
InformationsquelleAutor nick gowdy | 2012-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Möglichkeiten, wirklich: haben Sie Ihre Aktion nehmen Sie die Benutzer-Id und das Aussehen der Anwender, oder jede Zeile des Rasters enthalten ein Formular, das gesendet wird, der Benutzer die details zu der Aktion, wenn Sie auf 'Bearbeiten'. Welche davon Sie wählen, hängt davon ab, was Ihre Aktion soll das tun:
Bearbeiten
Übergeben die id, die Sie verwenden können, diese für die Aktion link:
...und diese für die Aktion Signatur:
Ich aktualisiert meine Antwort 🙂
Danke, ich wusste nicht, dass Sie es tun konnte, so. Wie wirkt sich der Artikel.E-Mail haben den richtigen Wert?
Ich bin mir nicht sicher, was
item
ist, um ehrlich zu sein - ich habe gerade kopiert es aus dem code für den link löschen in deiner Frage......Ok gut danke für Eure Hilfe!
InformationsquelleAutor Steve Wilkes