c# - How do you close a partial view opened in a pop up and refresh the main page? -



c# - How do you close a partial view opened in a pop up and refresh the main page? -

i using partial view displayed in pop edit details of record clicked on in main window. on view, user can edit, delete or cancel. when detail record edited or deleted successfully, want close partial view , update main window. right now, on delete, main view reloading in pop on success.

any help getting work appreciated.

the html:

`<a href="javascript:popup('@url.action("editcaseemployer/" + item.id, "caseoptions")')">@item.startdate.toshortdatestring()</a>`

here custom javascript functions popup window:

function popup(url) { window.open(url, 'notes', 'width=900,height=600,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); } function popup(url, windowname) { window.open(url, windowname, 'width=900,height=600,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); }

you add together boolean property view model using in partial:

public class myviewmodel { public myviewmodel() { shouldreload = false; } public bool shouldreload { get; set; } // properties public string foo { get; set; } }

and in partial test value , refresh opener , close popup:

@model myviewmodel @if (model.shouldreload) { <script type="text/javascript"> // refresh parent window window.opener.location.reload(); // close popup window.close(); </script> } else { using (html.beginform()) { @html.labelfor(x => x.foo) @html.editorfor(x => x.foo) <button type="submit">ok</button> } }

now that's left 2 controller actions used respectively show partial , process it:

public actionresult dialog() { var model = new myviewmodel(); homecoming partialview(model); } [httppost] public actionresult dialog(myviewmodel model) { if (!modelstate.isvalid) { // model invalid => redisplay partial homecoming partialview(model); } // todo: @ stage model valid // => pass service layer processing // went fine => set shouldreload flag true // view refreshes opener , closes model.shouldreload = true; homecoming partialview(model); }

c# asp.net-mvc-3 razor

Comments

Popular posts from this blog

How do I check if an insert was successful with MySQLdb in Python? -

delphi - blogger via idHTTP : error 400 bad request -

postgresql - ERROR: operator is not unique: unknown + unknown -