I suspect this has less to do with server-side code and more to do with client-side code. Don't think of the server-side code as "rendering to a frame", it has no concept of frames. Rather, in client-side code when the user is on an interface which itself includes a frame, you can navigate that frame with something like:
window.frames['framename'].document.location.href = 'someurl';
So imagine that your server-side code has one "parent" action which renders the entirety of the client-side interface. In that interface (view) there is an iframe which itself references another action, specifically the one which returns this:
return Content(htmlText, "text/html");
That frame is going to get its HTML from that action. The server-side code doesn't really know anything about this, it's just responding to requests. The browser is managing the requests from the frame(s).
That "parent" view can then trigger the frame to re-request by updating its location.href as above.
Additionally, you might want to use a POST request to a frame instead of just changing the URL (which would issue only a GET request). In this case the "parent" page (which contains the frame) can contain a form with a target attribute. Something like this:
<form method="post" action="someurl" target="framename">
form elements go here
</form>
Triggering a submit on that form (either with a submit button or in JavaScript code) should then cause only that frame to reload, posting the form and rendering the result just in that frame.